.htaccess 设置环境如果远程地址“x.x.x.x”不起作用- Apache和DirectAdmin

jecbmhm3  于 2023-03-19  发布在  Apache
关注(0)|答案(1)|浏览(95)

DirectAdmin和防火墙出现问题。以下语句不起作用:
SetEnvIf Remote_Addr "x.x.x.x" TRUST=yes
Apache不响应上述指令。
本说明是以下整体的一部分:

Alias /.well-known "/var/www/html/.well-known"

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/.well-known/(.*)
RewriteCond %{HTTPS} !=on

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

ProxyPass /.well-known !
SetEnvIf Remote_Addr "111.222.33.123" TRUST=yes
SetEnvIf Remote_Addr "111.222.33.223" TRUST=yes
SetEnvIf Remote_Addr "111.222.33.114" TRUST=yes
SetEnvIf Remote_Addr "111.222.33.223" TRUST=yes
SetEnvIf Remote_Addr "111.222.33.115" TRUST=yes
SetEnvIf Remote_Addr "111.222.33.234" TRUST=yes
SetEnvIf Remote_Addr "127.0.0.1" TRUST=yes

ProxyPass "/" "http://localhost:3001/"
ProxyPassReverse "/" "http://localhost:3001/"
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"

Apache不响应SetEnvIf Remote_Addr "x.x.x.x" TRUST=yes,问题出在哪里?

cidc1ykv

cidc1ykv1#

如果您位于防火墙/代理之后,那么Remote_Addr很可能是防火墙的IP地址,而不是进行连接的客户机的IP地址。
尝试检查X-Forwarded-For HTTP request header以获取客户端的IP地址,但请注意,这可能包含多个(逗号分隔)IP地址(客户端IP地址为第一个)。

SetEnvIf X-Forwarded-For "^111\.222\.33\.123\b" TRUST=yes

如果未设置X-Forwarded-For,则检查HTTP请求中是否存在其他类似的标头。

相关问题