htaccess 301 перенаправить динамический URL - PullRequest
1 голос
/ 03 октября 2009

Я перевожу свой сайт на новый домен. Нужно перенаправить страницы
от
old-site.com/oldpage.php?id=X
до
new-site.com/newpage-X
(Х - это число)

Почему это правило не работает?

RewriteEngine on
RewriteRule ^oldpage.php?id=(.*)$ http://new-site.com/newpage-$1 [R=301,L]

Ответы [ 2 ]

0 голосов
/ 03 октября 2009

RewriteRule работает только с URL-адресом , а не с запросом URL. Вам нужно использовать директиву RewriteCond для проверки запроса URL (%{QUERY_STRING}). Поэтому попробуйте это правило:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)id=([^&]+)&?(.*)?$
RewriteRule ^oldpage\.php$ http://new.example.com/newpage-%3?%1%4 [L,R=301]

Это правило также сохраняет другие параметры в запросе.

0 голосов
/ 03 октября 2009

Я подозреваю, что вам нужно будет использовать QUERY_STRING

RewriteCond %{QUERY_STRING}  ^id=(.*)$
RewriteRule ^oldpage\.php$ http://new-site.com/newpage-%1 [R=301,L]

Надеюсь, это поможет

...