Regex 重定向除图像以外的所有内容

Regex 重定向除图像以外的所有内容,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我不明白为什么,但是: RewriteCond %{HTTP_HOST} market\.mysite\.com$ [NC] RewriteCond %{HTTP_HOST} !^market\.mysite\.com$ [NC] RewriteCond %{REQUEST_URI} \.(png|jpe?g|bmp|gif|swf|css|js)$ [NC] RewriteRule ^(.*) http://market.mysite.com/$1 [L,R] RewriteCond %{R

我不明白为什么,但是:

RewriteCond %{HTTP_HOST} market\.mysite\.com$ [NC]
RewriteCond %{HTTP_HOST} !^market\.mysite\.com$ [NC]
RewriteCond %{REQUEST_URI} \.(png|jpe?g|bmp|gif|swf|css|js)$ [NC]
RewriteRule ^(.*) http://market.mysite.com/$1 [L,R]

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
一切正常。将图像重定向到其他域。但是这个:

RewriteCond %{HTTP_HOST} market\.mysite\.com$ [NC]
RewriteCond %{HTTP_HOST} !^market\.mysite\.com$ [NC]
RewriteCond %{REQUEST_URI} !\.(png|jpe?g|bmp|gif|swf|css|js)$ [NC]
RewriteRule ^(.*) http://market.mysite.com/$1 [L,R]

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
无论发生什么,都将重定向所有。我想看到的是重定向除图像以外的所有图像。 在上面的规则中,我试图将market.mysite.com的所有子域重定向到market.mysite.com,如果它不是market.mysite.com,如果它不是图像。换言之:

cdn.market.mysite.com -> market.mysite.com

cdn.market.mysite.com/blahblah.html -> market.mysite.com/blahblah.html

cdn.market.mysite.com/blahblah.png -> NO REDIRECT

market.mysite.com -> NO REDIRECT
我使用通配符子域,所以我的所有市场子域将使用相同的目录。然后通过一个php文件响应所有请求。index.php


谢谢,

用以下代码替换现有代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteCond %{HTTP_HOST} ^[^.]+\.market\.mysite\.com$ [NC]
RewriteCond %{THE_REQUEST} !^[A-Z]{3,}\s/+.+?\.(png|jpe?g|bmp|gif|swf|css|js)[\s?] [NC]
RewriteRule ^ http://market.mysite.com%{REQUEST_URI} [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

在其他浏览器中进行测试或清除现有浏览器缓存。

检查
排除条件对我来说很好。任何以这些扩展之一结束的东西都不会被重定向。问题解决了吗?还没有。我仍然无法让它工作。示例站点是:store.irgservers.com/test.pngThanks以获取回复。但它仍然重定向图像以及其他页面。它没有按照我的测试重定向图像。你的.htaccess里还有其他东西吗?您的文档根目录中是否有其他.htaccess文件?最后,这里有没有控制这种行为的框架?我对代码所做的唯一更改是删除了“选项”行。因为它会产生错误#500。我正在使用Apache2.2.3。也没有其他htaccess和框架。你想让我给你网站地址吗?不客气,很高兴它解决了问题。诀窍是使用:
%{THE_REQUEST}
(这是Apache收到的原始请求,它不会被各种规则覆盖)。我添加了另一个赏金(+100rep),我会在堆栈溢出允许时尽快给予它。我知道这还不足以证明你的时间是值得的。Sry,