Htaccess重定向长网址

时间:2013-11-02 19:42:36

标签: .htaccess redirect

我遇到了将旧的Google地图网址重定向到新网址的问题。我有新的链接(在组件更新后),但我想让旧的链接工作。

这是旧的

domain.com/index.php?option=com_xmap&sitemap=1&view=xml

这是新的

domain.com/index.php?option=com_xmap&view=xml&tmpl=component&id=1

请帮我重定向一下:)

1 个答案:

答案 0 :(得分:0)

我认为以下重定向可行。当查询字符串中没有id=时,它会重定向,并将id=somenumber附加到查询字符串,其中somenumber是站点地图后面的数字。

RewriteCond %{QUERY_STRING} !^(.*&|)id=
RewriteCond %{QUERY_STRING} ^(.*&|)sitemap=([0-9]+)(&.*|)$
RewriteRule ^ %{REQUEST_URI}?id=%2 [QSA,R,L]

快速了解我在这里使用的内容。 %{QUERY_STRING}是一个变量,就像%{REQUEST_URI}一样。正则表达式之前的!将否定该正则表达式(ala'不包含')。 %2替换为最后一个RewriteCond的第二个捕获组。在这种情况下,它将被([0-9]+)捕获的任何内容替换。标志为QSA(查询字符串追加),R(重定向,默认为临时重定向)和L(如果此规则匹配,则停止重写;这不会影响新请求那是)。可以找到文档here