1

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

这是旧的

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

这是新的

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

请帮我重定向这个:)

4

1 回答 1

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}. 正则表达式之前的A!将否定该正则表达式(ala '不包含')。%2替换为 last 的第二个捕获组RewriteCond。在这种情况下,它将被([0-9]+). 标志是QSA(查询字符串追加)、R(重定向,默认为临时重定向)和L(如果此规则匹配,则停止重写;这不会影响发出的新请求)。文档可以在这里找到。

于 2013-11-03T13:14:27.720 回答