[英]CakePHP 2.4.3 URL-Rewriting module not working
好...
厌倦了这个问题。 所以我想在这里问
为了澄清起见,我确实遵循了Cake PHP文档。 我用谷歌搜索了将近2个小时,然后猜猜是什么...
我在webroot等中编辑了htaccess文件,其中包括:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] </IfModule>
如本网站另一位海报所推荐
没运气。 我是否在这里遗漏了一些特别的东西,例如在我的装置上散发着神秘的独角兽般的灰尘?
我知道你是否还需要其他东西
哦,我前段时间做了LAMP安装
您的指导将不胜感激:)
[编辑]标记从2.4改为2.3,而不是<-我的坏
如果必须启用mod_rewrite,那么还需要更改默认的Apache设置,以允许.htaccess正确执行。 默认情况下,公共可访问目录中的大多数.htaccess规则将被拒绝。
根据您的设置,您应该有这样的东西...
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
deny from all
</Directory>
在您的apache的配置目录中找到,可能类似于
/etc/apache2/sites-available/default
请注意,上面的路径以及上面的Directory标记中的/ var / www /路径可能有所不同。
您将需要更改一些内容,例如AllowOveride以及下面要匹配的其他一些内容。 检查差异。
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
更改后,重新启动apache,希望您会看到.htaccess文件中的规则正在执行。
我认为您缺少/ $ 1部分。
我在webroot中的.htaccess如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>
过去在某些服务器上我也遇到了rewrite和cakePHP的问题,我需要在文件名的开头添加一个斜杠,如下所示:
RewriteRule ^(.*)$ /index.php?/$1 [QSA,L]
但是我不认为这是您的问题。
/var/www/app/webroot/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
/var/www/app/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
/var/www/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
请使用这些.htaccess文件配置您的应用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.