Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
用sslip重写Apache_Apache_.htaccess_Ssl_Redirect_Mod Rewrite - Fatal编程技术网

用sslip重写Apache

用sslip重写Apache,apache,.htaccess,ssl,redirect,mod-rewrite,Apache,.htaccess,Ssl,Redirect,Mod Rewrite,在大多数情况下,我的条件都可以重定向到我的安全站点https://mysite.example.com,除了用户输入的https://10.10.10.10在这种情况下会发生证书错误,这是可以预料的。但是如果用户决定继续,我想重定向到我的安全站点。这可能吗。见下面我的代码 RewriteEngine On RewriteCond %{HTTP_HOST} ^10\.10\.10\.10$ RewriteRule ^(.*)$ `https://mysite.example.com`/$1 [L,

在大多数情况下,我的条件都可以重定向到我的安全站点
https://mysite.example.com
,除了用户输入的
https://10.10.10.10
在这种情况下会发生证书错误,这是可以预料的。但是如果用户决定继续,我想重定向到我的安全站点。这可能吗。见下面我的代码

RewriteEngine On
RewriteCond %{HTTP_HOST} ^10\.10\.10\.10$
RewriteRule ^(.*)$ `https://mysite.example.com`/$1 [L,R=301]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

<>虽然我不确定<代码> %{HtppHistBo}} /代码>可以用来测试一个IP(Apache可能认为没有主机,如果主机是IP),假设你从你的问题中测试了这个规则,但它没有用,肯定有改进的空间。 您的SSL证书仅与一个主机名关联(除非您具有通配符证书,但这将是一种边缘情况),因此知道您的网站是否通过其IP或其他域别名访问并不重要;如果您希望将其重定向到https和特定主机名,那么所有这些都很重要

顺便说一句,如果你改变了IP,你必须在DNS和重写规则中都改变它,这并不理想

让我们简化一下:

RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^mysite.example.com$
RewriteRule (.*) https://mysite.example.com%{REQUEST_URI} [L,R=301]

请注意,如果满足第二个条件,您也需要在目标中硬编码
mysite.example.com
,因为它可能是IP或错误的主机。

是的,这是可能的。你的样品看起来不错,谢谢。您的代码无疑是一种改进。但它仍然无法与任何人合作。我得到了预期的证书错误,如果我决定继续,它将转到(证书无效),而您没有清除浏览器缓存吗?因为转到IP肯定会匹配
RewriteCond%{HTTP_HOST}^mysite.example.com$
尝试了多台机器、多个浏览器,当我单击“继续”时https://不会重定向。。是的,缓存已清除。谢谢您的帮助。好吧,如果我在指令()中使用您的代码,它将按预期工作。不幸的是,它破坏了站点的AJAX部分…它破坏了您的AJAX,因为您担心跨源问题或http/https的混合?如果它从同一个域请求内容,那么您应该只使用没有协议或域的相对路径