За последние 24 часа нас посетили 17863 программиста и 1287 роботов. Сейчас ищут 1473 программиста ...

Правильный RewriteRule в .htaccess

Тема в разделе "Сделайте за меня", создана пользователем skillful, 1 май 2017.

?

Вам понятно, что хочет автор данного топика?

  1. Да

  2. Нет

  3. Даже читать не хочу

  4. Мне все равно. Это форум мертвецов!!!

Результаты будут видны только после голосования.
  1. skillful

    skillful Активный пользователь

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
    Сейчас .htaccess такой
    HTML:
    1. <IfModule mod_rewrite.c>
    2. # MultiViews interfers with proper rewriting
    3. Options -MultiViews
    4.  
    5. RewriteEngine On
    6. # Uncomment and properly set the RewriteBase if the rewrite rules are not working properly
    7. #RewriteBase /
    8.  
    9. RewriteCond %{REQUEST_FILENAME} !-f
    10. RewriteCond %{REQUEST_FILENAME} !-d
    11. #RewriteCond %{ENV:REDIRECT_STATUS} ^$
    12. RewriteRule . rewrite.php [L]
    Все нормально работает перенаправляет все страницы на rewrite.php кроме:
    1. Главной страницы (site.ru, site.ru/index.php)
    2. И почему-то админки (site.ru/?mod=admin, site.ru/index.php?mod=admin)
    Ну вот админка как раз таки и не нужна для перенаправления. Нужно только включить главную страницу.

    Пытался сам сделать.

    После #RewriteBase /

    добавил RewriteRule ^index.php$ rewrite.php [L]

    Главная страница начала перенаправляться на rewrite.php, но также начала и перенаправляться ссылка в админку (site.ru/?mod=admin, site.ru/index.php?mod=admin). А админка как известно не нужна. Прошу помощи в этом вопросе. Нужно исключить ссылки на админку из переадресации, либо просто добавить перенаправление для главной страницы....
     
  2. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    774
    Симпатии:
    65
    мб
    RewriteBase /
    RewriteRule ^rewrite\.php$ - [L]
    помогёт
     
  3. skillful

    skillful Активный пользователь

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
  4. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Код (Text):
    1. RewriteCond %{QUERY_STRING} !mod=admin
    2. RewriteRule ^index\.php$ rewrite.php [L]
    3.  
    4. RewriteCond %{REQUEST_FILENAME} !-f
    5. RewriteCond %{REQUEST_FILENAME} !-d
    6. RewriteRule . rewrite.php [L]
    Или так:
    Код (Text):
    1. RewriteCond %{QUERY_STRING}     !mod=admin
    2. RewriteCond %{REQUEST_URI}      =/index.php [OR]
    3. RewriteCond %{REQUEST_FILENAME} !-f
    4. RewriteCond %{REQUEST_FILENAME} !-d
    5. RewriteRule . rewrite.php [L]
     
    skillful нравится это.
  5. skillful

    skillful Активный пользователь

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
    @Emilien оба способа работают. Спасибо!!!
     
  6. skillful

    skillful Активный пользователь

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
    @Emilien Обнаружилась проблема. Если вбить в браузере такой УРЛ site.ru/index.php, то будет ошибка:
    Код (Text):
    1. Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
     
  7. skillful

    skillful Активный пользователь

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
    А не. У меня в коде ошибки были не значительные.