на всей моей странице ссылки переписаны с
example.com/test.htm
в
example.com/index.php?page=test
Это работает нормально, но всякий раз, когда я хочу переписать ссылку, как
example.com/test/abc.htm
и я хочу, чтобы это было
example.com/index.php?page=test&id=abc
это не работает вообще. Вместо этого (взято из переменной $ _SERVER) я получаю:
PHP_SELF теперь «test.php / abc.htm»
SCRIPT_NAME теперь является «/test.php» вместо «/index.php», как это должно быть
Я вообще не понимаю, почему это происходит.
Мой .htacces выглядит так:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^([^/]+)\.htm/?$ /index.php?page=$1 [L]
RewriteRule ^test/([^/]+)\.htm/?$ /index.php?page=test&id=$1 [L]
Заранее благодарю за любую помощь
Вы должны выключить MultiViews
опции:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^/.]+)\.htm/?$ index.php?page=$1 [L,QSA]
RewriteRule ^test/([^/.]+)\.htm/?$ index.php?page=test&id=$1 [L,QSA]
Других решений пока нет …