@HAbRAhabp

Почему не убирает *.php?

Вот такой у меня код:
<IfModule mod_rewrite.c>
 RewriteEngine On 
 RewriteBase /  

 # всё что не касается файлов и не имеет точки в названии, добавлять в конце слеш
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_URI} !(.*)\.(.*){1,5}$
 RewriteCond %{REQUEST_URI} !(.*)/$
 RewriteRule ^(.*[^/])$ $1/ [L,R=301]
 
 # делает редирект для  *.php)
 RewriteCond %{REQUEST_URI} ^(.*)\.php$
 RewriteRule ^(.*)\.php$ $1\/ [L,R=301]
 
 # убираем индексы
 RewriteCond %{REQUEST_URI} ^(.*)index.php(.*)$
 RewriteRule ^(.*)index.php(.*)$ $1$2 [L,R=301]
 
 # site.ru/*/ открывает как site.ru/*.php
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME}\.php -f
 RewriteRule ^(.*)(\/)$ %{REQUEST_FILENAME}.php/ [L]

</IfModule>

Но почему то всегда открывается главная, а не та запрашиваемая страница.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
Посмотрите, что у вас получается в каком ни то htaccess тестере, например: htaccess.madewithlove.be

Как видно, при входящем урле example.com/bla.php на выходе вы получаете http://example.com/bla\/ что как бы не совсем то.
Как минимум исправьте строку:
RewriteRule ^(.*)\.php$ $1\/ [L,R=301]
$1\/ заменить на $1/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы