Привет, друзья! Помогите разобраться с .htaccess Есть такой код: Code: RewriteEngine on RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.php\ HTTP RewriteRule ^([^.]+)\.html$ http://site.ru/$1 [R=301,L] RewriteCond %{REQUEST_URI} !(\.[^./]+)$ RewriteCond %{REQUEST_fileNAME} !-d RewriteCond %{REQUEST_fileNAME} !-f RewriteRule (.*) /$1.php Этот код убирает расширение .php в конце, например, раньше было так: Code: http://site.ru/page.php Теперь можно страницу открыть и таким образом: Code: http://site.ru/page Собственно вопрос: Если добавить слеш в конце названия страницы (site.ru/page/), то открывать не хочет никаким образом(404). То есть путь ведет не к файлу, а ищет .php файл уже в папке page, которого нету вообще. Спасибо за помощь! ))
хз, похоже на костыль, но что если так: Code: RewriteRule (.+)/$ /$1 [L,R=301] порезать слыши или даже вот так Code: RewriteCond %{REQUEST_URI} .+/$ [NC] RewriteRule ^(.+)(/)$ $1 [L,R=301] зы я не оч в хатэаксесах
Code: RewriteRule (.+)/$ /$1 [L,R=301] этот пробовал, слеш убирает, но отказывается видеть файл page.php
имхо так проще Code: RewriteEngine on RewriteRule ^([^.]+)\.html$ http://site.ru/$1 [R=301,L] RewriteRule ^.*\.php$ - [L] RewriteCond %{REQUEST_fileNAME} !-d RewriteCond %{REQUEST_fileNAME} !-f RewriteRule ^(.*?)(\.php|\/)?$ /$1.php [L] Code: ~$ curl 'http://site/test' ok ~$ curl 'http://site/test.php' ok ~$ curl 'http://site/test.html' -I | grep Location Location: http://site/test ~$ curl 'http://site/test/' ok ~$ curl 'http://site/test-no' <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title>