Допилить rewrite

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем 4ksner, 23 окт 2012.

  1. 4ksner

    4ksner Постоялец

    Регистр.:
    6 июн 2012
    Сообщения:
    142
    Симпатии:
    60
    Всем привет!
    Используется на сайте вот такой редирект избавления от слеша на конце:
    PHP:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond 
    %{REQUEST_URI} ^(.+)/$
    RewriteRule ^(.+)/$  /$[R=301,L]
    Сейчас поставил на сайт форум по адресу sitename.ru/forum/
    У форума какая то особенность, и он не дает создавать темы и отвечать с редиректом написанном выше. Поэтому в этот код нужно добавить исключение на присутствие в начале УРЛ слова "forum".
    Пытался сам, ни чего не вышло. Прошу помощи у гуру.
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    В папку форума бросить файл .htacess и в нем прописать
    Код:
    RewriteEngine Off
    
    Или в основном файле
    Код:
    RewriteCond %{REQUEST_URI} !^forum/.* 
    
     
    4ksner нравится это.
  3. 4ksner

    4ksner Постоялец

    Регистр.:
    6 июн 2012
    Сообщения:
    142
    Симпатии:
    60
    Большое спасибо за помощь!
    Ваш код не заработал. Вместо этого, в УРЛ начал всплывать index.php и получалось вот что http://www.sitename.ru/index.php/forum.
    Этот index.php присутствовал по умолчанию, и я забыл указать как от него избавляюсь:

    PHP:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    ^(.*)$ /index.php/$[L]
    Методом тыка я изменил вашу строчку на эту:
    PHP:
    RewriteCond %{REQUEST_URI} !/forum
    И все заработало!
    Это корректный код? Проблемы потом не всплывут?
     
  4. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    После слова форум я бы поставил еще слеш / . Если дальше есть еще какие-то файлы аля topic.php то тогда подправил бы так:
    Код:
    RewriteCond %{REQUEST_URI} !/forum/.* 
    
    чтобы и их исключить . Этом случае исключается папка форум и все что по урлам глубже этой папки.
     
    4ksner нравится это.