![将 Apache vhost.conf 中的裸域重定向到 www(使用 SSL)](https://linux22.com/image/800713/%E5%B0%86%20Apache%20vhost.conf%20%E4%B8%AD%E7%9A%84%E8%A3%B8%E5%9F%9F%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20www%EF%BC%88%E4%BD%BF%E7%94%A8%20SSL%EF%BC%89.png)
我搜索过论坛,但似乎找不到可行的解决方案。
我的主站点是 https www.domain.com
我希望将以下域名也重定向到它:
http www.域名.com http 域名.com https 域名.com
从评论中添加:
好的,我现在在 apache 的 vhost.conf 中有以下内容:
<VirtualHost :80>
ServerName www.domain.com
ServerAlias www.domain.com domain.com
</VirtualHost>
在我的.htaccess 中我有以下内容:
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.)$ domain.com/$1 [R=permanent,L]
除了 domain.com 出现未找到错误外,其他一切都正常。需要澄清的是,SSL 由 CDN 托管,因此在服务器上,Apache 本地仅使用端口 80 运行。– James 1 小时前
答案1
根据评论信息得出的新答案:
首先,您的 vhost.conf 中有一个错误。您不需要在 ServerName 和 ServerAlias 中都包含 www.domain.com。别名列出了除 ServerName 之外用于虚拟主机的所有其他名称。因此这些行应该是:
ServerName www.domain.com
ServerAlias domain.com
而且由于您的虚拟主机中有两个主机名,因此无需重写,除非您特别希望将浏览器地址栏中的 URL 更改为 www.domain.com 而不是 domain.com。
以下是原始答案
您需要执行以下操作:
- 设置 domain.com 的 DNS 记录,使其指向与 www.domain.com 相同的位置
- 设置你的网络服务器以响应端口 80 和端口 443
- 设置您的网络服务器,以便 domain.com 与 www.domain.com 被视为相同。
如需有关如何执行此操作的进一步帮助,请向我们展示您迄今为止所做的工作并提出具体问题。
答案2
最简单、最好的搜索引擎合规方法是以下 .htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com$1 [R=permanent,L]
这会将 domain.com 重定向至 www.domain.com。
要启用 https,您需要配置 Apache 以使用 SSL