Мой файл .htaccess в настоящее время выглядит следующим образом
AddType x-mapp-php5 .php
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^account$ /account/orders.php [L]
Когда я перехожу на http://mywebsite.com/account
, он правильно показывает страницу на http://mywebsite.com/account/orders.php
. Но когда я изменяю RewriteRule на
RewriteRule ^account/orders$ /account/orders.php [L]
и затем я иду к http://mywebsite.com/account/orders
, я получаю сообщение об ошибке 404 Страница не найдена. Что я сделал не так?
****** Дополнительные детали **
Я наконец диагностировал проблему. Но я не понимаю, почему мое решение работает. Рассмотрим сценарий, в котором существует account / orders.php.
Следующее правило не будет работать
RewriteRule ^account/orders$ account/orders.php [L]
Следующее правило будет работать
RewriteRule ^account/order$ account/orders.php [L]
Т.е., правило перезаписи не будет выполнено, если шаблон оценивает существующий файл. Поэтому, когда шаблон такой же, как подстановка, но без расширения, правило перезаписи не будет выполнено. Если я добавлю файл account / order.php, оба правила потерпят неудачу.
Почему это происходит?