我不明白为什么但是:
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
谢谢,
答案 0 :(得分:4)
用以下内容替换现有代码:
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]
在其他浏览器中测试或清除现有的浏览器缓存。