Cakephp从旧网址重定向301查询

时间:2013-10-02 11:40:34

标签: .htaccess cakephp mod-rewrite redirect

我正在尝试将旧网址(例如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中的那个.htaccess。 谢谢 奥利

2 个答案:

答案 0 :(得分: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会自动转移到新网址,以便新网址变为:http://www.mysite.com/about?option=com_content&view=article&id=1

答案 1 :(得分:0)

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