提问者:小点点

CakePHP 2.3 mod_重写不起作用


我有一个问题,用CakePHP1.3编写了一个Webapp,它运行得很好,所以我想使用更新的cake版本,在本地Apache上复制后(在旧的cake运行正常之前,它可能具有正确的配置),它会显示mod_rewrite不工作的错误。所以我不明白,因为如果我比较。这两种蛋糕的版本有很多不同之处,所以我尝试使用旧的。更新的cake 2.3的htaccess,但出现错误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>

蛋糕/app/webroot/

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

非常感谢你的帮助!


共1个答案

匿名用户

我的webroot访问看起来像

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

和2一起工作很好。十、

但推荐的方法是

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

当你排队时。这应该适用于所有系统。

请参阅webroot访问

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