我正在尝试编写与{1}之外的某些关键字匹配的RedirectMatch
(apache
)。
...
RewriteEngine on
RedirectMatch ^/(banners|documents|images|static)/(.*)$ http://sb.amazonaws.com/$1/$2
RewriteRule ^(.*)/(vrf[0-9]+)/(.*).(js|css)$ $1/$3.$4 [PT]
我提出了这个RedirectMatch
规则,该规则将包含横幅,文档等的所有网址重定向到aws域。
现在,我想阻止包含temp
的网址转到aws域。为此,我添加了!temp
RedirectMatch ^/(!temp|banners|documents|images|static)/(.*)$ http://sb.amazonaws.com/$1/$2
这不允许像mysite.com/temp/a.jpg
这样的网址转到AWS(但抱怨无限循环)
但不会阻止重定向mysite.com/images/temp/a.jpg
。这个规则应该是正确的正则表达式?
[编辑]
[EDIT2] 这让我接近我想要的东西
RewriteEngine on
RewriteRule ^(images/groups/temp)/(.*)$ $1/$2 [PT]
RewriteRule ^(banners|documents|images|static)/(.*)$ http://sb.amazonaws.com/$1/$2
RewriteRule ^(.*)/(vrf[0-9]+)/(.*).(js|css)$ $1/$3.$4 [PT]
答案 0 :(得分:1)
请勿将RedirectMatch
与RewriteRule
混合使用。使用RewriteCond
添加例外:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/images/groups/temp/ [NC]
RewriteRule ^(banners|documents|images|static)/(.*)$ http://sb.amazonaws.com/$1/$2 [L,NC,R]
RewriteRule ^(.*)/(vrf[0-9]+)/(.*).(js|css)$ $1/$3.$4 [PT]