我有一个问题,在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>
非常感谢你的帮助!
答案 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>
你排好了。这应该适用于所有系统。
还要确保mod_rewrite不仅可用,但允许通过htaccess启用。 您需要在虚拟主机/配置设置中使用“AllowOverride All”。 并非所有地方都是默认设置。