将url重写为搜索查询

时间:2010-11-03 12:45:39

标签: regex .htaccess mod-rewrite

我最近更改了域名,新网站有不同的永久链接结构。我不想将旧网站的所有内容重定向到新网站,而是设置.htaccess将旧网址重写为查询字符串,以便找到所请求的网页,而无需将其输入搜索新网站

例如:

www.oldsite.com/projects/2010/foo-bar-foobar应重定向至www.newsite.com/?s=foo+bar+foobar

旧的永久链接结构始终以一年(4位数)开头,新结构完全不同,所以我认为重定向到搜索查询将是最好的选择。

我试图了解正则表达式,但我无法接近有效的解决方案。

我希望有人能指出我正确的方向。

谢谢!

1 个答案:

答案 0 :(得分:1)

我总是在第一时间搞这些,但你可以试试这个(在www.oldsite.com上的.htaccess):

RewriteRule ^/?projects/[0-9]+/(.*)$ http://www.newsite.com/?s=$1 [R]

在英语中,这匹配旧站点上以可选斜杠开头的URL,后跟单词“projects”,然后是另一个斜杠,然后是一个或多个数字,然后是斜杠,然后是任意数量的字符。它重定向到新站点,将最后一组“任意数量的字符”作为查询字符串传递。最后一个“R”告诉重写引擎向用户代理发出重定向。