我有一个网站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)?
答案 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]