我正在尝试找出一个正则表达式,它会在URL中找到一些数字并在我重定向到的URL中使用它们。
Redirect 301 /page.php?id=95485666 http://test.com/profile/info/id/95485666
我在想也许
Redirect 301 /page.php?id=([0-9]+) http://test.com/profile/info/id/$1
但它似乎无法正常工作
另外,如果我进行301重定向,我需要多长时间将代码保存在.htaccess文件中?什么时候谷歌会发现新的链接是好的?
答案 0 :(得分:3)
您无法与Redirect
指令中的查询字符串匹配(也不能与RedirectMatch
/ RewriteRule
中的查询字符串匹配)。您需要使用mod_rewrite的%{QUERY_STRING}
var:
RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)id=([0-9]+)($|&)
RewriteRule ^/?page\.php$ http://test.com/profile/info/id/%2? [L,R=301]
答案 1 :(得分:2)
我觉得语法不正确。试试这个:
RewriteRule ^page.php?id=([0-9]+) http://test.com/profile/info/id/$1 [R=301,L]