当谈到服务器相关的东西时,我有点新手,但基本上我现在遇到了最令人沮丧的问题......
我的配置文件被更改之前:
<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 中进行之后,我认为这是 Apache 搞砸了我超过。所以这是我用于 htaccess 的代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1$1 [L,R=301]
编辑:感谢所有帮助,但在 www.xyz.net 上一切正常,但是在 xyz.net 上Index Of
显示了一个页面,并且列表中没有索引项目,所以大概它只是一个空网页。