繁体   English   中英

ProxyPass自定义端口重定向到https

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM