Apache mod_rewrite将未命名为x的文件的所有请求重定向到此域

时间:2011-08-23 13:52:11

标签: apache mod-rewrite httpd.conf

好的,我正在努力实现这个目标:

重定向要从另一台服务器加载的特定文件类型的所有文件(特殊例外除外),现在我正在使用此重写规则:

RewriteEngine on
RewriteRule \.(swf|jpg|png)$ http://example.com%{REQUEST_URI} [NC,R=302,L]

它会将所有swf,jpg或png文件重定向到另一个主机名以提供服务。 那么如何为特定文件添加此规则的例外?我试过添加:

RewriteCond %{REQUEST_URI} ^!(log22.swf|packer.swf|sos.swf|aeVisual.swf|newBubbleSystem.swf|e.swf)$

但是当我这样做时,它完全停止了规则对其他文件做任何事情。有任何想法吗?我是使用mod_rewrite的新手。

1 个答案:

答案 0 :(得分:1)

您必须预先准备!条件的正则表达式:

RewriteCond %{REQUEST_URI} !^(log22.swf|packer.swf|sos.swf|aeVisual.swf|newBubbleSystem.swf|e.swf)$

请注意,!^的顺序与您的代码的顺序不同,因为您可以否定表达式,但在之前添加! 。< / p>

规则不起作用的原因是它永远不会匹配。