Переписать условие в .htaccess для слеша и не слеш версии выдает код состояния 500 - PullRequest
0 голосов
/ 04 апреля 2019

Мы пытаемся настроить правило перенаправления в .htaccess, чтобы каждый наш URL с косой чертой в конце перенаправлялся на версию без косой черты.

Мы реализовали этот код, который, я считаю, должен работать:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

То, что происходит сейчас, когда я пытаюсь посетить слэш-версию, я получаю 500 кодов состояния.Вот URL сайта: plicnivek.cz.Правильно ли реализовано наше правило .htaccess?

1 Ответ

0 голосов
/ 04 апреля 2019

Ваше правило неверно, так как оно также переписывает несуществующий каталог файлов в PHP. Вы можете использовать следующее правило, чтобы удалить косую черту и переписать расширение php.

RewriteEngine on


#remove traling slash 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ /$1 [R=301,L]
#remove .php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.+)/?$ /$1.php [L]
...