首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有SSL IP的Apache ReWrite

问带有SSL IP的Apache ReWrite
EN

Stack Overflow用户
提问于 2017-07-20 11:02:41
回答 1查看 48关注 0票数 0

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

代码语言:javascript
复制
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}
EN

回答 1

Stack Overflow用户

发布于 2017-07-20 11:25:14

虽然我不确定%{HTTP_HOST}是否可以用于测试IP (Apache可能会认为没有主机,如果主机是IP),并且假设您测试了问题中的规则,但它不起作用,那么肯定有改进的空间。

你的SSL证书只与一个主机名关联(除非你有一个通配符证书,但这是一个边缘情况),所以知道你的网站是通过它的IP还是另一个域名访问并不重要;如果你想把它重定向到https和一个特定的主机名,这一切都很重要。

顺便说一句,如果你改变了IP,你将不得不在DNS和你的重写规则中都改变它,这是不理想的。

因此,让我们简化一下:

代码语言:javascript
复制
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或错误的主机。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45204373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档