CakePHP URL重写在Ubuntu上不起作用


CakePHP URL rewriting not working on Ubuntu

我似乎无法在带有apache2的Ubuntu 12.04服务器上进行URL重写,当加载默认页面(主页)时,它只是没有CSS的纯文本。我使用Cake 2.3.9,在新安装到/var/www/时收到以下消息。所以我的根目录看起来像

/var/www/app
/var/www/lib
/var/www/index.php
/var/www/.htaccess
....

我得到的错误是

服务器上没有正确配置URL重写。1.帮我配置它2。我不/不能使用URL重写

我尝试了这篇文章中的所有内容,但还是收到了消息。

那篇帖子中我唯一没有做的是公认的答案,那就是

事实证明.htaccess文件并没有与cakeHP源一起被复制。当使用cp命令或隐藏文件不可见时,这是一个常见问题在文件浏览器中,除非复制顶级目录。将文件直接复制到我的项目文件夹中为我修复了它,而不必干扰我的apache设置。

该用户是否建议确保.htaccess是/var/www?我不太明白他们的建议。我在本地下载了Cake,然后使用SFTP将其上传到我的ubuntu服务器上的/var/www。

除非有一些替代的modrewrite设置,否则我几乎肯定它已经启用。当我键入sudo a2enmod rewrite时,它显示Module rewrite already enabled

我也尝试过这里的一切,但仍然没有成功。我完全被卡住了。

是的,.htaccess需要在公共web根目录中-在这种情况下是/var/www。确保你的网络服务器也能读取该文件。

如果不起作用:确保已安装并启用mod_rewrite模块。它应该在Ubuntu 12.04上。您可以通过列出/etc/apache2/mods enabled的内容进行检查。您应该看到rewrite.load已列出。

如果没有,你可以这样启用:

sudo -i
cd /etc/apache2/mods-enabled
ln -s ../sites-available/rewrite.load rewrite.load
apache2ctl restart

我卸载并重新安装了LAMP堆栈,它现在可以工作了。我还从2.3.9降级到CakePHP 2.3.8,所以可能其中也有一些内容。

不管怎样,它现在起作用了!