繁体   English   中英

CakePHP 2.4.3 URL重写模块不起作用

[英]CakePHP 2.4.3 URL-Rewriting module not working

好...

厌倦了这个问题。 所以我想在这里问

为了澄清起见,我确实遵循了Cake PHP文档。 我用谷歌搜索了将近2个小时,然后猜猜是什么...

  1. 我确实启用了mod-rewrite->这花了我一段时间,因为我没有httpd.conf文件
  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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM