На сайте с ЧПУ есть папки, имена которых совпадают с частью урл, например, http://site.ru/qqq и есть папка qqq В файле htaccess задано: ------------- <ifModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^aaa$ man/tst2.php [QSA,L] </ifModule> ------------- При задании адреса в браузере http://site.ru/qqq, идет попытка перейти в папку qqq. Как это можно исправить?
Добавить условие "не каталог" как это обычно делается. То есть "всего" должно получиться "если не файл и не каталог тогда рерайт на такой-то файл". Это раз. И два - в описании каталог qqq, а в руле - aaa отсекается как-то...
Спасибо за ответ, но у меня раньше стояло RewriteCond %{REQUEST_FILENAME} !-d т.е. применять правила, если не каталог. Я его убрал, т.к. не работало, а содержимое htaccess, конечно же там стоит qqq) ------ <ifModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^qqq$ man/tst2.php [QSA,L] </ifModule> ------ т.е. стоит !-d или нет, все равно не работает.
Добавил --- <ifModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f # RewriteCond %{REQUEST_FILENAME} !-d RedirectMatch 302 ^qqq$ man/tst2.php # RewriteRule ^qqq$ man/tst2.php [QSA,L] </ifModule> --- то же самое, выдает Forbidden You don't have permission to access /qqq/ on this server.
А откуда редиректмач вообще появился? Что не ясно в русскими буквами написанной фразе: ? У меня вот так почему-то работает как требуется: Код (Text): RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/qqq/ RewriteRule .* bbb/file.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] что я делаю не так?
Я новичок в htaccess, поэтому пытался сделать простой редирект через RedirectMatch. Но, кажется понял, что RewriteCond можно использовать несколько раз и по нему фильтровать обработку. Так действительно работает. Спасибо.
Рекомендую тебе сходить почитать мануал. В рерайтере всего 6 директив. Из них одна его тупо включает. Итого пять. (c) Одна из моих любимых фраз. И обязательно ознакомься с тем как включить отладку рерайтера и научись читать логику разрешения запроса.