Назад | Перейти на главную страницу

Как выполнить перенаправление .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]

Но я не могу заставить его работать.

RewriteRule / не соответствует запросу к / в htaccess. Путь, который вы сравниваете, в этом случае пуст (префикс удаляется в htaccess rewriterule)

RewriteRule ^$ http://domain.com/?p=110 

Согласно документам, вам нужно проверить, что Options FollowSymLinks включен перед попыткой rewrite в .htaccess. Затем вы также должны отметить, что префикс для каждого каталога автоматически удаляется, что означает шаблон с ^/ никогда ничего не совпадает (держу пари, поэтому ваш / не работает).

Итак, в вашем случае сначала проверьте Options FollowSymLinks а затем измените RewriteRule быть чем-то вроде ковена предложил, или моя версия:

RewriteRule ^$ /?p=110