如何在mod_rewrite上链接

时间:2011-01-10 22:56:13

标签: mod-rewrite

我需要一个简单的链接条件解决方案,但我总是有错误:

如果不是远程地址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]标志可以管理它,但事实并非如此。我没有在这个

上找到任何例子

1 个答案:

答案 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}},它可以伪造!