【问题标题】:Changing the ServerAlias gives me an Index Of Page更改 ServerAlias 给了我一个页面索引
【发布时间】: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问题吗?谢谢

标签: .htaccess apache2.4


【解决方案1】:

检查是否有另一个带有ServerName: xyz.net 的虚拟主机。在这种情况下,其他虚拟主机可以优先于您的虚拟主机。

在基于 Linux 的系统下,有一个默认配置文件可以包含此 ServerName。默认情况下,它的位置是/etc/apache2/sites-available/default。该文件也可以命名为000-default.conf

【讨论】:

  • 啊该死的,我才意识到我的问题有点含糊。对不起,我真的很累。
  • 别担心,我也累了。现在是凌晨 4 点 40 分,我仍在编写代码。
  • 哈哈,3.42 am 到了,我真的很想睡觉,但是这个错误真的很烦人。只是为了澄清,它显示了一个空的索引页面,所以大概没有文件。而如果我添加 www。它显示了网站的主页。
  • 我想到了什么,也许某个地方是另一个带有ServerName: xyz.net 的虚拟主机?在这种情况下,其他虚拟主机可以优先于您的虚拟主机。
  • 我不知道你用的是什么操作系统,但是在Linux下有一个文件包含默认的虚拟主机(/etc/apache2/sites-available/default)。也许它可以包含ServerName: xyz.net
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 2019-12-25
  • 2015-05-18
  • 1970-01-01
相关资源
最近更新 更多