301使用Apache';重写规则(适用于Joomla网站)

301使用Apache';重写规则(适用于Joomla网站),apache,mod-rewrite,redirect,http-status-code-301,Apache,Mod Rewrite,Redirect,Http Status Code 301,我在重定向某些页面时遇到问题。我的重写规则如下所示(示例): 但它不起作用,我尝试了一些不同的组合,但仍然没有效果。 有解决方案吗?更新:下面的重写规则不正确。有关更多详细信息,请参见2012年7月9日的更新 我已经读到,规则总是相对的,因此请尝试: RewriteRule ^index\.php\?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword

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

但它不起作用,我尝试了一些不同的组合,但仍然没有效果。
有解决方案吗?

更新:下面的重写规则不正确。有关更多详细信息,请参见2012年7月9日的更新

我已经读到,规则总是相对的,因此请尝试:

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\u content&view=article&id=47:article关键字&catid=8:position
重定向到
article关键字.html

^
指定字符串的开头。有关Apache重写规则的更多信息,请参阅

更新-2012-07-08

好的,在阅读Apache文档之后,RewriteRule在查询字符串上不匹配。要匹配查询字符串中的数据,需要使用
RewriteCond
%query\u字符串
变量

成功!下面这些对我有用

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-关键字&catid=8:位置
to
http://site.domain.com/article-keyword.html


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

您能添加一些文档说明您特别想要完成的任务吗?根据您发布的规则,您似乎希望将非常特定的URL
/index.php?option=com\u content&view=article&id=47:article关键字&catid=8:position$
更改为
article关键字.html
,如果是这样,这是重定向没有发生吗?是的,我有几个具体的链接,我想重定向感谢回复,但仍然没有重定向,我已经尝试了^1开始,没有任何帮助。你把这个重写规则放在哪里?如果在.htaccess中,请发布整个.htaccess文件。我将把它放在RewriteEngine之后的语句和RewriteBase上(也尝试了不设置RewriteBase)。我认为问题在于您的文本字符串包含需要转义的正则表达式特殊字符。请看这篇文章。这些字符
^$*+?()[{\
需要转义。我将更新我的帖子以包含需要转义的字符('\')。进一步查看后,
肯定需要转义
\?
。很好!非常感谢您的帮助和研究!
RewriteCond %{QUERY_STRING} option=com_content&view=article&id=47:article-keyword&catid=8:position
RewriteRule ^index\.php$ article-keyword.html? [R=301,L]