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

时间:2014-07-02 23:29:01

标签: redirect ssl https apache2 ubuntu-12.04

我有一个在Ubuntu 12.04上运行的Apache2 Web服务器。我托管的网站域名工作正常,如果您转到http版本而不是https版本,它会自动重定向到域的https版本。

但是,如果我转到域的IP地址的http版本,它不会自动重定向到IP地址的https版本。

.htaccess或httpd.conf文件中没有任何内容。

我尝试在.htaccess文件中专门为ip添加重定向,但它无法正常工作,当我访问域时,它说重定向太多了。

我在启用网站的文件夹中有一个default-ssl文件和网站文件。 default-ssl具有端口443的虚拟主机配置和ServerName

网站文件具有端口80的虚拟主机配置,但没有ServerName

两个文件都具有相同的DocumentRoot

如何启用IP地址的https重定向,而不仅仅是域名?

2 个答案:

答案 0 :(得分:0)

您可以使用重写规则:

<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

答案 1 :(得分:0)

通常,网站不允许您使用其IP地址浏览它们。他们将改为301重定向到他们的域名地址。这是针对搜索引擎优化的,因为有多个地址指向同一主机可能会使搜索引擎混淆为认为它们是不同的网站,导致网站不必要地相互竞争页面排名。

由于您的域名已经有HTTPS重定向,为什么不将您的IP地址重定向到您的域名地址?然后,域地址将重定向到HTTPS站点。您可以通过.htaccess或通过像PHP这样的服务器端页面处理器来完成此操作。

相关问题