1

我在重定向某些页面时遇到问题。我的重写规则如下所示(示例):

RewriteRule /index.php?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword.html [R=301,L]

但它不起作用,我尝试了一些不同的组合,但它仍然什么也没做。有什么解决办法吗?

4

1 回答 1

0

更新:下面的 RewriteRule 不正确。有关详细信息,请参阅 2012 年 7 月 9 日的更新

我读过 RewriteRules 总是相对的,因此尝试:

RewriteRule ^index\.php\?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword.html [R=301,L]`

这应该重定向/index.php?option=com_content&view=article&id=47:article-keyword&catid=8:positionarticle-keyword.html

指定字符串的^开头。有关 Apache 的 RewriteRule 的更多信息,请查看http://www.noupe.com/php/10-mod_rewrite-rules-you-should-know.html

更新 - 2012-07-08

好的,在阅读 Apache 文档后,查询字符串上的 RewriteRule 不匹配。要匹配查询字符串中的数据,您需要使用 aRewriteCond%QUERY_STRING变量。

成功!以下对我有用!

RewriteCond %{QUERY_STRING} option=com_content&view=article&id=47:article-keyword&catid=8:position
RewriteRule ^index\.php$ article-keyword.html? [R=301,L]

这重定向http://site.domain.com/index.php?option=com_content&view=article&id=47:article-keyword&catid=8:positionhttp://site.domain.com/article-keyword.html

这只会将请求重定向到具有相关查询字符串的 index.php。

于 2012-07-09T15:21:49.170 回答