我的问题:
当我访问本地主机的网站不起作用。 它显示从网站的一些文本,但似乎服务器无法find任何其他文件。 这里是萤火虫的错误摘录:
"NetworkError: 404 Not Found - localhost/css/popup.css" "NetworkError: 404 Not Found - localhost/css/style.css" "NetworkError: 404 Not Found - localhost/css/player.css" "NetworkError: 404 Not Found - localhost/css/ui-lightness/jquery-ui-1.8.11.custom.css" "NetworkError: 404 Not Found - localhost/js/jquery.js"
看来我的服务器正在寻找错误的地方的文件。 例如,localhost / css / popup.css实际上位于localhost / app / webroot / css / popup.css中。
我有我的网站安装在远程服务器上具有相同的确切configuration,它工作得很好。 我只是有这个问题试图运行我的笔记本电脑在本地的网站。 我编辑我的VirtualHosts文件DocumentRoot和/home/user/public_html/site.com/public/app/webroot/,这减less了一些错误,但我觉得这是错误的,有点黑客,因为我没有使用这些设置在我的生产服务器上工作。
我想要做的最后一个笔记是,该网站使用dynamicurl。 我不知道这与它有什么关系。 例如,在生产服务器上的URL是:site.com/#hello/12321。
我在做什么:
我的笔记本电脑上安装了一个LAMP服务器,它在Ubuntu 11.10上运行。
我已经启用mod_rewrite:
sudo a2enmod rewrite
然后我编辑我的虚拟主机文件:
<VirtualHost *:80> ServerName localhost DirectoryIndex index.php DocumentRoot /home/user/public_html/site.com/public <Directory /home/user/public_html/site.com/public/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
然后我重新启动apache。 我的网站正在使用cakePHP。 这是网站的目录结构:“/home/user/public_html/site.com/public”包含:
index.php app cake plugins vendors
这些是我的.htaccess文件:
/home/user/public_html/site.com/public/app/.htaccess:
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule>
/home/user/public_html/site.com/public/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>
你的app /和app / webroot dirs中有.htaccess,但是你的根目录没有。
你应该有文件:/home/user/public_html/site.com/public/.htaccess
RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L]
要么
改变你的文件根目录
DocumentRoot /home/user/public_html/site.com/public/app/
这两个答案都假设public / index.php没有在URI上运行某种高级路由。 嵌套的.htaccess文件做重写是凌乱的。
您的网站位于/home/user/public_html/site.com/public 。
它包含: index.php app cake plugins vendors
而你的根.htaccess文件是:
RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L]
所以这意味着:无论如何,请转到安装中的webroot文件夹。
但是我没有看到任何webroot文件夹。 我错过了什么吗?
我看不到日志。 Firebug不是Apache错误日志 。 在这种情况下,Apache的错误日志是没有任何替代的,所以启动错误日志并检查error.log
在你的笔记本电脑上,你有没有AllowOverride设置在你的apacheconfiguration有些允许使用.htaccess文件?
请参阅: http : //httpd.apache.org/docs/2.2/mod/core.html#allowoverride
详情。
或者只需将以下内容添加到您的httpd.conf然后重新启动apache:
AllowOverride All
如果这有帮助,那么检查出上面的链接并改进AllowOverride指令。 如果没有帮助,那么取出你添加的AllowOverride (但是留在已经存在的任何一个连接器中)并且重新启动apache。