1

我正在尝试将旧 URL(例如http://www.mysite.com/index.php?option=com_content&view=article&id=1)重定向到 cakephp2 /about。我的 .htaccess 在顶部有一个 mod_rewrite 减速。我在 .htaccess 中尝试了几个选项,例如:

 RewriteRule ^/index.php?option=com_content&view=article&id=1  http://www.mysite.com/about     [R=301,L]

什么是正确的语法?我使用哪个 .htaccess 是否重要,无论是顶层还是 app/webroot 中的那个。谢谢奥利

4

2 回答 2

1

RewriteRule不正确,因为前导/不匹配.htaccess并且查询字符串也不匹配。

您可以使用以下规则:

RewriteCond %{QUERY_STRING} (^|&)option=com_content&view=article&id=1(&|$)
RewriteRule ^index\.php$ http://www.mysite.com/about? [R=301,L]

QUERY_STRING会自动转移到新 URL,因此新 URL 将变为:http://www.mysite.com/about?option=com_content&view=article&id=1

于 2013-10-02T11:48:46.330 回答
0

无论您的服务器指向您的 Web 根目录,您都希望在该目录的.htaccess文件中添加您的规则。CakePHP'sRewriteRule非常贪心,所以你想要么RewriteRule在 CakePHP's 上面加上你的 s;或将规则添加到.htaccess文件Redirect 301的底部。我倾向于以这种方式将我的 s 与我的 s 分开。RewriteRuleRedirect

于 2013-10-02T14:56:00.870 回答