我有一个在 Ubuntu 12.04 上运行的 Apache2 Web 服务器。我托管的网站的域名运行良好,如果您访问 http 版本而不是 https 版本,它会自动重定向到该域名的 https 版本。
但是,如果我访问该域名的 http 版本的 ip 地址,它不会自动重定向到 https 版本的 ip 地址。
.htaccess 或 httpd.conf 文件中没有任何内容。
我尝试在 .htaccess 文件中专门为 ip 添加重定向,但它不能正常工作,当我访问该域时,它说重定向太多。
我在 sites-enabled 文件夹中有一个 default-ssl 文件和网站文件。default-ssl 具有端口 443 的虚拟主机配置和 ServerName
网站文件有端口 80 的虚拟主机配置,但没有 ServerName
两个文件具有相同的 DocumentRoot
如何不仅为域名启用 https 重定向,还为 IP 地址启用 https 重定向?
答案1
如果您希望重定向:80
除以下访问之外的所有访问http://example.com
:
<VirtualHost _default_:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example.com$
RewriteRule /.* https://example.com/ [R]
</VirtualHost>
如果您甚至想重定向到 的邮件http://example.com
,请执行以下操作:
<VirtualHost _default_:80>
RewriteEngine On
RewriteRule /.* https://example.com/ [R]
</VirtualHost>
显然,如果您还有其他VirtualHost
节,它可能永远无法达到这一_default_
节。
希望这可以帮助!