将 http 重定向到 https 排除特定 IP
Posted
技术标签:
【中文标题】将 http 重定向到 https 排除特定 IP【英文标题】:Redirect http to https exclude specific IP 【发布时间】:2017-06-13 20:52:30 【问题描述】:我已使用以下规则排除 200.200.0.17 从 http 重定向到 https,但它的请求(来自 200.200.0.17)仍然被重定向到 https。任何帮助将不胜感激。
<VirtualHost _default_:80>
# If mod_rewrite is present, it takes precedence over mod_alias
# and it is necessary to rewrite the request to https.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %REMOTE_ADDR !^200.200.0.17
RewriteRule (.*) https://%HTTP_HOST$1
</IfModule>
# Otherwise use mod_alias to redirect.
Redirect / https://%HTTP_HOST/
</VirtualHost>
【问题讨论】:
我的回答对你有用吗?如果它确实使用了它左上角的勾号,请接受它。谢谢。 【参考方案1】:第一条规则执行后,第二条规则也执行。为防止这种情况发生,请使用last
标志。更改代码中的行:
RewriteRule (.*) https://%HTTP_HOST$1 [L]
见:https://httpd.apache.org/docs/2.4/rewrite/flags.htm
【讨论】:
【参考方案2】:这是因为您设置了替代重定向,请删除:
Redirect / https://%HTTP_HOST/
或者它会在第一条规则忽略它之后继续重定向该 IP。
【讨论】:
以上是关于将 http 重定向到 https 排除特定 IP的主要内容,如果未能解决你的问题,请参考以下文章
使用 Apache 将内部 IP 从 HTTP 重定向到 HTTPS
如何在 lighttpd 中为特定域设置 HTTP 到 HTTPS 重定向?