Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redirect 如何在Apache2上将IP和域的http重定向到https_Redirect_Ssl_Https_Apache2_Ubuntu 12.04 - Fatal编程技术网

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

Redirect 如何在Apache2上将IP和域的http重定向到https,redirect,ssl,https,apache2,ubuntu-12.04,Redirect,Ssl,Https,Apache2,Ubuntu 12.04,我有一个Apache2网络服务器运行在Ubuntu 12.04上。我托管的网站的域工作正常,如果您转到http版本而不是https版本,它会自动重定向到域的https版本 但是,如果我转到域的ip地址的http版本,它不会自动重定向到ip地址的https版本 .htaccess或httpd.conf文件中没有任何内容 我曾尝试在.htaccess文件中专门为ip添加重定向,但它无法正常工作,而且当我访问域时,它会说重定向太多 我在sites enabled文件夹中有一个默认ssl文件和网站文件。

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

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

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

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

我在sites enabled文件夹中有一个默认ssl文件和网站文件。默认ssl具有端口443和服务器名的虚拟主机配置

网站文件具有端口80的虚拟主机配置,但没有服务器名

两个文件具有相同的DocumentRoot


如何为ip地址而不仅仅是域启用https重定向?

您可以使用重写规则:

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

重新启动发动机
重写条件%{HTTPS}关闭
重写规则^/?(*)https://%{SERVER_NAME}/$1[R,L]

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


既然您的域地址上已经有HTTPS重定向,为什么不将您的IP地址重定向到您的域地址?然后,域地址将重定向到HTTPS站点。您可以通过.htaccess或通过服务器端页面处理器(如PHP)来实现这一点。

这个问题似乎与主题无关,因为它与编程无关。请参见帮助中心中的。也许,或者是一个更好的问问题的地方。