检查 apache 配置文件是否有 rewrite_module 行并且它没有被注释:
/etc/apache2/apache2.conf
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
还要确保您的覆盖和符号链接选项在上述 apache 配置中是正确的:
<Directory />
Options FollowSymLinks
AllowOverride All
# Order deny,allow
# Deny from all
</Directory>
根据您的 cakephp 版本,.htaccess 应该像这些。
应用程序/.htacces CakePHP 2:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
/.htacces CakePHP 3:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
webroot/.htaccess两个版本:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>