Как мне сделать перенаправление.htaccess 301 строки запроса?
Я пытаюсь перенаправить URL-адрес http://domain.com/?p=106 на http://domain.com/?p=110
Мой файл.htaccess выглядит так:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^p=106
RewriteRule / http://domain.com/\?p=110 [L,R=301]
Но я не могу заставить его работать.
2 ответа
Решение
Согласно документам, вы должны проверить, что Options FollowSymLinks
включен, прежде чем пытаться rewrite
в .htaccess
, Затем вы также должны заметить, что префикс для каждого каталога автоматически удаляется, что означает ^/
никогда ничего не совпадает (держу пари, именно поэтому ваш /
не работает).
Итак, в вашем случае, сначала проверьте Options FollowSymLinks
а затем изменить RewriteRule
чтобы быть чем-то, как предложил Ковенер, или моя версия:
RewriteRule ^$ /?p=110
RewriteRule / не соответствует запросу / в htaccess. В этом случае путь, с которым вы сравниваете, пуст (префикс удаляется в htaccess rewriterule)
RewriteRule ^$ http://domain.com/?p=110