多个RewriteCond和RewriteRule按顺序排列

时间:2013-10-23 09:13:40

标签: mod-rewrite apache2

我尝试构建RewriteCond和rewriteRules,使它们在IF-ELSE条件类型中工作。我在apache2.conf中添加了rewiriteconds和规则。但看起来,规则没有得到执行。 这是我尝试过的:

RewriteEngine on
RewriteCond %{HTTP_COOKIE} !^Set-Cookie$
RewriteRule ^/(.*) http://abc.xyz.com/$1
RewriteCond %{HTTP_COOKIE} ^Set-Cookie$
RewriteRule ^/([^/]*\.nff).*$ /srv/samba/FilesIN/$1

Cond / rules(根据我的理解) 如果没有Set-Cookie,则重定向到abc.xyz.com else 直接到/ srv / samba / FilesIN / $ 1

请告知这些Cond /规则是否正确?

谢谢, -Suresh

2 个答案:

答案 0 :(得分:0)

仅在名称上不匹配%{HTTP_COOKIE}。放宽正则表达式边界以覆盖cookie值。

RewriteEngine on

RewriteCond %{HTTP_COOKIE} !^.*Set-Cookie.*$ [NC]
RewriteRule ^/?(.*)$ http://abc.xyz.com/$1 [L]

RewriteCond %{HTTP_COOKIE} ^.*Set-Cookie.*$ [NC]
RewriteRule ^/?([^/]+\.nff).*$ /srv/samba/FilesIN/$1 [NC,L]

答案 1 :(得分:0)

此问题现已解决。重写和规则应该在Virtualhost文件中,而不是在http.conf或apache.conf中。