Apache 2.4中的RewriteCond支持对IP进行匹配。默认情况下,它使用变量%{REMOTE_ADDR}来获取客户端的IP地址。然而,有时候我们需要在其他变量上使用ipmatch表达式进行匹配。这时就需要使用expr标志。
例如,我们想在RewriteCond中使用Http_X_Forwarded_For头部中的客户端IP地址进行匹配。可以在RewriteCond语句中使用expr标志,并在其中使用ipmatch表达式,如下所示:
RewriteEngine on
RewriteCond expr "-R '123.123.123.123'"
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
在上面的代码中,我们使用-R来获取Http_X_Forwarded_For头部中的IP地址,并使用ipmatch表达式进行匹配。如果匹配成功,请求会被重定向到http://example.com/$1。
注意,在使用ipmatch表达式时,IP地址必须用单引号括起来。
上一篇:Apache2.4PHP-FPMTCP配置导致503ServiceUnavailable和permissiondenied:AH00957:FCGI:attempttoconnect错误。
下一篇:Apache2.4RewriteCond中使用expr/ipmatch匹配非%{REMOTE_ADDR}变量的问题。