【发布时间】:2015-08-07 23:48:39
【问题描述】:
我有一个站点 www.example.com,它使用 RewriteEngine 将 HTTP 流量重定向到 HTTPS:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/
....
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com$1 [L]
RewriteCond %{SERVER_PORT} ^80$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</VirtualHost>
我发现的问题是 google 已将这个 URL 编入索引:
http://www.example.com:443
给出这个错误:
我已尝试重定向流量,添加来自 80 和 443 虚拟主机的永久重定向:
<VirtualHost *:80>
...
RewriteEngine on
#RewriteCond %{HTTP_HOST} ^example.com [NC]
#RewriteRule ^(.*)$ https://www.example.com$1 [L]
#RewriteCond %{SERVER_PORT} ^80$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</VirtualHost>
<VirtualHost *:443>
...
RewriteEngine on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</VirtualHost>
没有成功。将所有流量从http://www.example.com:443(和派生页面)重定向到https://www.example.com 的正确方法是什么?
【问题讨论】:
-
这与this question 中的问题或多或少相同。这里的错误是首先将
http://www.example.com:443编入索引。你知道为什么会这样吗?当然,如果当前已被 Google 编入索引,则最终会从索引中删除(尤其是在您修复了导致此问题的任何原因之后)。 -
不,我不知道它是怎么发生的。我检查了所有链接,没有一个有 :443 端口规范。都指向https。所以我想它是从外部来源链接的。
标签: .htaccess redirect ssl https virtualhost