我需要一个简单的链接条件解决方案,但我总是有错误:
如果不是远程地址123.123.123.123 和它的http主机ex.example.com GOTO example.example.com
我想出了这个(这不起作用):
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$ [C]
RewriteCond %{HTTP_HOST} ^ex\.example\.com$ [NC]
RewriteRule . http://example.example.com%{REQUEST_URI} [R,L]
我认为[C]标志可以管理它,但事实并非如此。我没有在这个
上找到任何例子答案 0 :(得分:2)
如果通过链接来表示RewriteCond
取决于之前的[C]
,则不需要AND
。
他们已经通过隐式RewriteCond %{REMOTE_ADDR} !=123.123.123.123
RewriteCond %{SERVER_NAME} =ex.example.com [NC]
RewriteCond %{REQUEST_URI} (.*)
RewriteRule .* http://example.example.com%1 [R=301,L]
连接。所以以下就足够了:
%{SERVER_NAME}
请注意使用%{HTTP_HOST}
代替HTTP_HOST
。
如果您的默认虚拟主机接受所有传入请求,则不安全依赖Host:
,因为其值来自HTTP标头字段{{1}},它可以伪造!