Исключающее правило в .htaccess

Avenus

Under Glory Yield
Исключающее правило в .htaccess

Не работает такая директива:
PHP:
RewriteCond $1 !^(index\.php|public|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
Проблема в mod_rewrite или в написании?
 

tz-lom

Продвинутый новичок
проблема в том что это не PHP
а вообще запрос приходит в виде /filename поэтому начинаться сразу с robots.txt он не может
 

Avenus

Under Glory Yield
Я понимаю, что это не PHP :)
Не нашел куда написать тут.
Первая строка исключение того, что не преобразовывать.
 

Avenus

Under Glory Yield
Обычно да, но эти люди заморочат так, что потом разгребать приходится другим людям :)
Есть такой CodeIgniter. На нем написан сайт. А, чтобы заставить его работать с ЧПУ, нужен mod_rewrite.
Только почему-то на одном хостинге работает, а на другом нет.
Вот я и зашел на форум спросить: как написать правило, чтобы оно работало.

-~{}~ 14.07.10 22:46:

Кстати, если указать домен:
PHP:
RewriteCond $1 !^(index\.php|public|robots\.txt)
RewriteRule ^(.*)$ http://sitename.dom/index.php/$1 [L]
То директивы работают, но в URL висит index.php, что нежелательно.
Как можно это решить?

-~{}~ 14.07.10 22:48:

URL в CodeIgniter такого вида:
PHP:
http://sitename.dom/index.php/main/sub/
Поэтому предложение по ЧПУ было неуместно :)
А .htaccess нежен для того, чтобы убрать index.php из URL.
 

tz-lom

Продвинутый новичок
Сори,что то я натупил , слеши в именах тут не при чём
вообщем то всё проще - экранирование

Код:
RewriteCond $1 !^(index\.php|public|robots\.txt) 
RewriteRule ^(.*)$ ./index.php/$1 [L]
 

Avenus

Under Glory Yield
tz-lom, экранирование использую.
Видимо тут при вставке удаляются :)

-~{}~ 15.07.10 12:59:

Так кто-нибудь может подсказать, почему не работает?
Или на что обратить внимание в настройках сервера, чтобы переписать.
 

dimagolov

Новичок
Avenus, скажи, а что вызовет апач получив в запросе http://sitename.dom/index.php/main/sub/ ?
 

Avenus

Under Glory Yield
dimagolov:
Файл index.php с GET-параметрами в
первом сегменте = main
и втором сегменте = sub
 

craz

Нестандартное звание
я вот тоже прочитал был ну очень удивлен, ажно страшно стало мож я че не наю(
 

Avenus

Under Glory Yield
Я уже понял, что не знаете как решить проблему :)
Можно больше не спрашивать.
 

Avenus

Under Glory Yield
Вурдалак, это не ответ, а непонимание вопроса.
Суть проблемы не стоит в создании ЧПУ, т.к. URL и так нормальный.
Нужно убрать из URL index.php.
Директивы, которые я описал в .htaccess работают на одном хостинге, а на другом - нет.
Вот и спросил "Проблема в mod_rewrite или в написании?"
На вопрос так никто и не ответил. Вывод - не знают.
 

Avenus

Under Glory Yield
Mr_Max, на том, нерабочем сервере, а не сайте.
Я сменил хостинг, теперь работает.
 

Crys

Двинутый новичок
Не удивлюсь, если оказалось, что на "нерабочем сервере" просто не был подключен mod_rewrite, а кто-то не умеет смотреть логи ошибок и объяснять, в чем проявляется ошибка.
 
Сверху