【发布时间】:2015-07-18 19:02:09
【问题描述】:
我有一个 URL www.site-name.com 已移至 www.sitename.com,然后在新站点 (sitename.com) 上安装了 SSL 证书。我对这两个站点都有一个 .htaccess 文件。
对于旧网站,我将 site-name.com 重定向到 sitename.com,如下所示:
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^site-name.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.site-name.com$
RewriteRule (.*)$ http://www.sitename.com/$1 [R=301,L]
</IfModule>
这有效,但如果您输入 https://www.site-name.com 您会收到一条安全消息并且没有重定向。大多数 .htaccess 知识库告诉您如何从 http 重定向到 https 或从 site-name.com 重定向到 sitename.com,但我需要知道如何同时重定向这两者。我需要 http://www.site-name.com 完全重定向到 https://wwwsitename.com。有人可以帮我在没有安全消息的情况下重定向网站吗?我不明白为什么旧的 url 用 https 协议解析。
更新: 根据要求,我收到的安全警告是“您的连接不是私密的”。相关的错误代码是 NET::ERR_CERT_COMMON_NAME_INVALID
以下是一些可能对解决问题很重要的附加信息: 在 Google 中搜索站点时,sitename.com 和 site-name.com 都会出现在搜索中。当您单击 site-name.com 时,它会尝试转到 https://site-name.com 而不是重定向到正确的站点:https://sitename.com
【问题讨论】:
-
如果您没有 www.site-name.com 的 SSL 证书,那么您为什么认为它甚至会是一个相关的域地址来合并您的重定向。如果您尝试将两个站点都重定向到 https,那么只需使用您在第一个站点上的 htaccess 代码和新站点的 htaccess 文件中的此代码。RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https:// %{HTTP_HOST}%{REQUEST_URI} [R,L]
-
我不确定我是否遵循。 www.site-name.com 是原始域,我希望它重定向到新域 www.sitename.com。原始域没有 SSL,但当您在 URL 中使用 https 时,它仍然可以解析。这不是想要的效果。我不希望它解决 - 我只是希望它重定向。这是一个问题,因为当您在 Google 中搜索该网站时,它会尝试(出于某种原因)将您带到 site-name.com。因此,它不会进入新站点,而是发出安全警告。
标签: php apache .htaccess redirect ssl