如何在 Apache2 上将 IP 和域名的 http 重定向到 https

如何在 Apache2 上将 IP 和域名的 http 重定向到 https

我有一个在 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_节。

希望这可以帮助!

相关内容