![没有“www.”的域名会给我 Apache“它起作用了!”页面](https://linux22.com/image/500909/%E6%B2%A1%E6%9C%89%E2%80%9Cwww.%E2%80%9D%E7%9A%84%E5%9F%9F%E5%90%8D%E4%BC%9A%E7%BB%99%E6%88%91%20Apache%E2%80%9C%E5%AE%83%E8%B5%B7%E4%BD%9C%E7%94%A8%E4%BA%86%EF%BC%81%E2%80%9D%E9%A1%B5%E9%9D%A2.png)
当我像这样输入我的域名时
www.domain.com
一切正常。但是当我像这样输入时
domain.com
我得到了“成功了!”页面。我是一个完全的 Apache 新手,所以我不太清楚这里出了什么问题。
答案1
传统解决方案:在httpd配置中找到:
ServerName www.domain.com
并添加:
ServerAlias domain.com
domain.com
但是,这将为您提供一个在和上响应相同内容的服务器www.domain.com
。通常认为只有一个规范主机名是更好的选择(尤其是从 SEO 角度而言)。为此,请为重定向添加一个新的虚拟服务器,而不是别名。
<VirtualHost *:80>
ServerName domain.com
Redirect permanent / http://www.domain.com/
</VirtualHost>
答案2
检查mod_alias在您的 apache 配置文件中,确保正则表达式对于重定向是正确的。
答案3
正如其他人所说的,这与 Apache 配置有关。
只需将 ServerAlias 添加到虚拟主机的 apache 配置中即可。我认为创建另一个虚拟主机并让其为您重定向并不是一个好的做法。
将所有内容导向其中一个或另一个是良好的 SEO 做法,我建议在你的配置文件或 .htaccess 中使用它
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
答案4
我也遇到了这个问题并找到了解决方案这里。
基本上,升级后,Apache 在 中放置了一个符号链接/etc/apache2/sites-available
。删除 和 之间的所有内容(包括)<VirtualHost *:80>
,<VirtualHost>
一切又恢复正常了。