我正在尝试将旧网址(例如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。 谢谢 奥利
答案 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
分开。