使用Apache的RewriteRule进行301重定向(适用于Joomla网站)

时间:2012-07-09 15:09:25

标签: apache mod-rewrite redirect http-status-code-301

我遇到了重定向某些页面的问题。我的重写规则看起来像(例子):

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

但它不起作用,我尝试了一些不同的组合,但它仍然无能为力。 任何解决方案?

1 个答案:

答案 0 :(得分: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:position重定向到article-keyword.html

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

更新 - 2012-07-08

好的,在阅读Apache文档后,RewriteRule与查询字符串不匹配。要匹配查询字符串中的数据,您需要使用RewriteCond%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:position重定向到http://site.domain.com/article-keyword.html

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