.htaccess не выполняется, если отсутствует косая черта - PullRequest
0 голосов
/ 14 июля 2011

Это самая странная проблема, с которой я столкнулся.Я использую mod_rewrite в .htaccess в Apache / 2.2.13 (Linux / SUSE), и он не вызывается, если в URL нет косой черты.Я проверил, поместив мусор в файл .htaccess, и получил только 500 ошибок при добавлении косой черты, но 404 при отсутствии.Я, честно говоря, понятия не имею, почему.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

/name fails with 404
/name/ is successful

1 Ответ

0 голосов
/ 26 октября 2014

Проблема в том, что /name - это имя файла, которому apache обычно удается сопоставить с каталогом /name/, но иногда этот механизм не работает.У меня была удаленно похожая проблема, и я следовал советам по ее решению в соответствии с разделом Trailing Slash в Руководстве по перезаписи URL в документации Apache.

Я думаю, что в вашем случае вы можете попытаться добавить следующие строки (я бы предложил сразу после RewriteEngine On) в ваш файл конфигурации Apache, если у вас есть к нему доступ:

 RewriteBase    /
 RewriteRule    ^name$  name/  [R]
...