htaccess重定向非图像资源

时间:2015-05-01 17:55:09

标签: .htaccess mod-rewrite url-rewriting

我有一个网站somedomain.com,以及设置到子域名www.somedomain.com的CDN。 (我本来想把它变成cdn.somedomain.com,但是没有选项)。

CDN实际上是一面愚蠢的镜子。我想用它来传递图像资源,但不是页面。

这些.htaccess规则正在正确地将图像请求重定向到CDN。 (我真的不关心通过文件扩展名进行限制。)

RewriteCond %{HTTP_HOST} ^somedomain\.com$ [NC] RewriteRule ^images\/?(.*)$ "http\:\/\/www\.somedomain\.com\/images\/$1" [R=301,L]

如何扩展这个相同的.htaccess文件,以确保像www.somedomain.com/something/or/other这样的非资产请求被重定向到somedomain.com/something/or/other(no www)?

1 个答案:

答案 0 :(得分:2)

你应该能够做到这一点。使用两个规则。而且你不需要在RewriteRule中做逃脱。

RewriteCond %{HTTP_HOST} ^somedomain\.com$ [NC]
RewriteRule ^images/([^/]+)$ http://www.somedomain.com/images/$1 [R=301,L]

#if it's not the image folder redirect to main domain without www
RewriteCond %{HTTP_HOST} ^www\.somedomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/images [NC]
RewriteRule ^(.*)$ http://somedomain.com/$1 [R=301,L]