3

我遇到了这个 Joomla 问题 - 谷歌似乎已经为我删除的一个菜单条目编制了索引,但我忘记删除菜单中的条目,所以现在谷歌已经索引了这个网站:

http://www.madplanuge.dk/?Itemid=134

我想将它(.htaccess)重定向到这个网址: http: //www.madplanuge.dk/madplan/lav-madplan

你会怎么做。我已经尝试过以下操作:

RewriteRule ^\?Itemid=134 http://www.madplanuge.dk/madplan/lav-madplan?[R=301,L]

RewriteCond %{REQUEST_URI} ^\?Itemid=134$
RewriteRule ^\?Itemid=134$ http://www.madplanuge.dk/madplan/lav-madplan?[R=301,L]

上述解决方案均无效。

4

2 回答 2

4

您不能单独使用 RewriteRule 来执行此操作,因为 Apache 将忽略查询字符串。如果查询字符串包含我们要查找的 ID,我将在此处进行重定向。

RewriteCond %{QUERY_STRING} Itemid=134 [NC]
RewriteRule ^.*$ http://%{HTTP_HOST}/madplan/lav-madplan? [R=301,L]

请记住,当您测试您的浏览器将缓存您的 301 重定向时,您需要清除缓存以查看任何更改。

于 2013-06-12T07:32:55.263 回答
1

你做错了两件事:

  • %{REQUEST_URI}总是以斜杠开头,所以 RewriteCond 需要而^/\?不是^\?

  • ^\?Itemid=134$将 RewriteRule 中的更改为^.*$。RewriteRule 将整个 URL 作为第一个参数,而不仅仅是请求 URI。

更多关于 Apache 重写的信息可以在这里找到。

于 2013-06-12T07:05:03.047 回答