CakePHP 2.3 mod_rewrite无效

时间:2013-03-06 09:50:17

标签: apache cakephp mod-rewrite

我有一个问题,在CakePHP 1.3中编写了一个Web应用程序并且工作正常,所以我想使用较新的蛋糕版本并将其复制到我的本地Apache(可能具有正确的配置,直到较旧的Cake运行良好)它显示mod_rewrite无效的错误。所以我不明白,因为如果我比较两个蛋糕版本的.htaccess有很多不同,所以我尝试使用旧的.htaccess作为新蛋糕2.3但是得到了错误500.

所以我真的不明白这个问题,因为Apache的配置是正确的。

这是我的.htaccess文件(蛋糕2.3.1)包含的内容:

饼/

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

饼/应用/

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

饼/应用/根目录/

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

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我的webroot htaccess看起来像

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

并且可以正常使用2.x

但建议的方式是

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
你排好了。这应该适用于所有系统。

请参阅webroot htaccess

还要确保mod_rewrite不仅可用,但允许通过htaccess启用。 您需要在虚拟主机/配置设置中使用“AllowOverride All”。 并非所有地方都是默认设置。