我的网址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。有人可以帮助我在没有安全消息的情况下重定向网站吗?我不明白为什么旧网址会使用https协议解析。
更新: 根据要求,我得到的安全警告是&#34;您的连接不是私密的&#34;。相关的错误代码是NET :: ERR_CERT_COMMON_NAME_INVALID
以下是解决问题可能很重要的一些其他信息: 在Google上搜索网站时,sitename.com和site-name.com都会出现在搜索结果中。当您单击site-name.com时,它会尝试转到https://site-name.com而不是重定向到正确的站点:https://sitename.com
答案 0 :(得分:0)
看起来您需要RewriteCond %{HTTPS} on
:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^sitename.com[nc]
RewriteRule ^(.*)$ http://www.sitename.com/$1 [r=301,nc]
答案 1 :(得分:0)
尝试将重定向块更改为:
RewriteBase /
RewriteCond %{HTTP_HOST} ^site-name\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.site-name\.com$ [NC]
RewriteRule ^(.*)$ https://www.sitename.com/$1 [R=301,L]
如果这不起作用,您的SSL证书可能对sitename.com
和www.sitename.com
都无效。如果是这种情况,只需从重定向中删除www.
即可阻止警告。但是,如果您希望sitename.com
的请求也重定向到www.sitename.com
(反之亦然),则需要为两者提供有效的证书。
修改强>
根据以下评论中的评论,如果您希望通过HTTPS访问这些证书并重定向,则还需要site-name.com
和www.site-name.com
的有效证书。