【发布时间】:2014-10-31 00:10:48
【问题描述】:
对于服务器相关的东西,我有点新手,但基本上我现在遇到了最令人沮丧的问题......
修改前我的配置文件:
<VirtualHost *:80>
ServerAdmin xyz@gmail.com
DocumentRoot /var/www/xyz.net/public_html
ServerName www.xyz.net
ServerAlias xyz.net
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<Directory "/var/www">
AllowOverride All
Order allow,deny
allow from all
</Directory>
这很棒,而且有点用。虽然,去 www.xyz.net 会加载并且你可以看到内容,但是,去 xyz.net 会显示一个索引页面。于是我更改了配置文件,只是切换了名称和别名:
<VirtualHost *:80>
ServerAdmin xyz@gmail.com
DocumentRoot /var/www/xyz.net/public_html
ServerName xyz.net
ServerAlias www.xyz.net
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<Directory "/var/www">
AllowOverride All
Order allow,deny
allow from all
</Directory>
但是,这似乎不起作用,为什么我仍然获得页面索引?为什么 www.xyz.net 拥有所有页面内容,而 xyz.net 却没有?!我真的很困惑。
我一直试图让 www 重定向到非 www,起初我认为这是我的 .htaccess 文件的错误,但在尝试了各种重定向方法甚至在 PHP 中进行之后,我认为它是阿帕奇把我搞砸了。所以这是我用于 htaccess 的代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1$1 [L,R=301]
编辑:
感谢所有的帮助,但是在 www.xyz.net 上一切正常,但是在 xyz.net 上显示了 Index Of 页面,并且列表中没有索引项目,所以大概它只是一个空网页。
【问题讨论】:
-
域名 www.和非 www 都指向正确的 IP,至于错误日志,我无法让它正常工作
-
哦,对了,对不起,当我重新启动 apache 时,它告诉我 RewriteLog 拼写错误,或者由未包含在服务器配置中的模块定义。
-
啊,修复了日志级别的东西,原来我使用的是旧版本,所以我用
LogLevel rewrite:trace3替换它 -
我认为这与 htaccess 无关,因为我有另一台服务器设置与此非常相似,并且运行良好。问题是,因为我已经更改了 ServerAlias 和 ServerName,它现在向我显示 xyz.net 上的(空)页面索引
-
是的,我在更改所有内容后一直在重新启动。那肯定是bug,你能给我一些关于如何安装2.4.9的指导吗?只是一篇文章或SO问题吗?谢谢