2014-09-14 2 views
1

на целых ссылках страницы переписываются изURL Rewrite не действует, как ожидалось

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] 

Заранее спасибо за любую помощь

+0

Это работает очень хорошо для меня. –

ответ

0

Вам нужно отключить 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] 
+1

Это было решение, спасибо вам большое! – Nichrom

+0

Добро пожаловать, рад, что это сработало. – anubhava

Смежные вопросы