我遇到了重定向某些页面的问题。我的重写规则看起来像(例子):
RewriteRule /index.php?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword.html [R=301,L]
但它不起作用,我尝试了一些不同的组合,但它仍然无能为力。 任何解决方案?
答案 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。