CakePHP的路由是否会破坏我的.htaccess 301重定向?

时间:2010-06-30 20:34:44

标签: php apache .htaccess cakephp

我刚刚将网站迁移到了更新版本,但是希望为网站的一些最常见的输入页面添加301重定向到

所以这是我要添加到.htaccess的规则:

Redirect 301 /oldhomepage.htm http://www.thesite.com/

它有点工作,但它重定向到

http://www.thesite.com/?url=oldhomepage.htm

这是否与CakePHP路由设置有些冲突?

编辑:有人指出这可能是一个.htaccess冲突,事实确实如此。 CakePHP自动创建一个.htaccess文件(位于子目录中),该文件具有以下内容:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

有没有什么方法可以让我轻松拥有两全其美,让我的简单,每页301重定向并保持CakePHP的路由?

2 个答案:

答案 0 :(得分:1)

如果所有旧网址都以.htm结尾,而您的新网址都没有,则可以像这样编辑CakePHP .htaccess文件:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.htm$
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

答案 1 :(得分:0)

为什么不在控制器中使用$this->redirect('http://www.thesite.com/', 301);