#.htaccess #mod-rewrite
#.htaccess #перезапись мода
Вопрос:
Мой файл .htaccess выглядит следующим образом:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ ?action=$1 [QSA,L]
Все работает нормально, если я заканчиваю все свои URL на /
. Например http://localhost/test/test2/test3/
.
Но если я забуду поставить / в конце, я получу ошибку not found… Я пытался настроить это правило перезаписи, но не могу заставить его работать в обоих направлениях (с final / и без него).
Есть идеи?
Ответ №1:
Сделайте это необязательным с помощью ?
оператора:
RewriteRule ^(.*)/?$ foo.php?action=$1 [QSA,L]
… или просто удалите полностью, поскольку вам, похоже, это вообще не нужно:
RewriteRule ^(.*)$ foo.php?action=$1 [QSA,L]
… или даже:
RewriteRule ^ foo.php?action=$0 [QSA,L]