11

全部。这次我尝试使用 cakephp,但出现“您的服务器上未正确配置 URL 重写。1)帮我配置它 2)我不/不能使用 URL 重写”。我可以知道这是 apache 和 .htaccess 问题,例如 /etc/apache2/sites-avaliable/default 和每个目录 .htaccess。

我的开发环境...

  • vmware fusion4上的Ubuntu12.04
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

遵循我的流程...

1)/etc/apache2/httpd.conf

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

2) 启用 mod_rewrite

sudo a2enmod rewrite
sudo service apache2 reload

3) 编辑 /etc/apache2/sites-avaliable/default (AllOverride None to AllOverride All)

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>

prompt: sudo service apache2 reload

4)编辑或检查每个.htaccess文件->cake根目录

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
   </IfModule>

->应用程序根目录

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$    webroot/    [L]
   RewriteRule    (.*) webroot/$1    [L]
   </IfModule>

->webroot 目录

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

这个问题已经解决了,谢谢。

4

3 回答 3

6

我也有这个问题。原来.htaccess文件没有与 cakePHP 源一起复制。这是使用 cp 命令或在文件浏览器中看不到隐藏文件时的常见问题,除非您复制顶级目录。

将文件直接复制到我的项目文件夹中为我修复了它,而不必弄乱我的 apache 设置。

cp ~/git/cakePHP/.htaccess ~/project/folder/
于 2012-10-22T21:13:29.767 回答
0

可能的错误配置:

检查文件http://your_domain_name/css/cake.generic.css是否可以从您的浏览器访问。如果没有,您将在默认主页中收到警告

如果您{HOME}/css在根级别有一个目录,则 UrlRewriting 将不会重定向http://your_domain_name/css/cake.generic.css{HOME}/app/webroot/css/cake.generic.css.

因此将找不到 css-File,导致未正确配置 URL 重写的消息。(查看文件 app/View/Pages/home.cpt)

解决方案:完全删除{HOME}/css根级别的目录。将您的 css 文件放在{HOME}/app/webroot/css.

于 2014-04-04T17:47:02.380 回答
-1

这可能是文件权限问题。尝试将 webroot 和 tmp 目录的权限递归设置为 777。tmp 目录可能需要 sudo。

sudo chmod -R 777 /path/to/app/webroot/
sudo chmod -R 777 /path/to/app/tmp/
于 2012-06-05T11:54:04.537 回答