Я пытаюсь перенаправить 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]
Но я не могу заставить его работать.
RewriteRule / не соответствует запросу к / в htaccess. Путь, который вы сравниваете, в этом случае пуст (префикс удаляется в htaccess rewriterule)
RewriteRule ^$ http://domain.com/?p=110
Согласно документам, вам нужно проверить, что Options FollowSymLinks
включен перед попыткой rewrite
в .htaccess
. Затем вы также должны отметить, что префикс для каждого каталога автоматически удаляется, что означает шаблон с ^/
никогда ничего не совпадает (держу пари, поэтому ваш /
не работает).
Итак, в вашем случае сначала проверьте Options FollowSymLinks
а затем измените RewriteRule
быть чем-то вроде ковена предложил, или моя версия:
RewriteRule ^$ /?p=110