[英]ProxyPass custom port Redirect to https
我想对 mysite.com:1234 的某些 IP 进行大访问,但拒绝其他用户使用该端口并将他们重定向到端口 80 或 443,第一部分是使用我的 vhosts 文件,但我似乎无法获得重定向部分工作,其他 IP 出现 403 错误
<VirtualHost 12.123.123.123:443>
<Directory "/home/mysite/public_html">
Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
SSLRequireSSL
</Directory>
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
ProxyPass / http://127.0.0.1:1234/
ProxyPassReverse / http://127.0.0.1:1234/
<Proxy "http://127.0.0.1:1234/">
Deny from all
allow from 1.1.1.1
allow from 1.1.1.2
allow from 1.1.1.3
allow from 1.1.1.4
</Proxy>
</IfModule>
一种解决方案是使用 mod_rewrite 实施您的代理规则。 重写规则有一个[P]
标志,意思是“反向代理”。 您可以有一个重写条件,在执行代理的规则之前检查正确的 IP 地址。 然后所有其他请求将落入执行重定向的第二条规则。
RewriteEngine On
# Reverse proxy for allowed remote addresses
RewriteCond %{REMOTE_ADDR} ^1.1.1.[1234]$
RewriteRule ^/?(.*)$ http://127.0.0.1:1234/$1 [P,L]
# Redirect everything else to the main site
RewriteRule ^/?(.*)$ https://mysite.example/$1 [R=301,L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.