我似乎无法在带有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,所以可能其中也有一些内容。
不管怎样,它现在起作用了!