Как мне сделать перенаправление.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 
Другие вопросы по тегам