0

我正在使用 .htaccess 和 mod_rewrite 来强制总是“www”。在 URL 中 - 当然也适用于其他内容。这是我的 .htaccess 文件的一部分:

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

RewriteCond %{THE_REQUEST} index\.php [NC]
RewriteRule ^index\.php$ http://www.example.com/ [NC,R=301]

RewriteRule ^images/([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+).jpg$ pic.php?picID=$1&width=$2&height=$3&corners=$4 

现在我期待使用虚拟子域来加速图像加载(例如:img1.、img2. 等)。原因是我的一些页面上有很多缩略图。

但总是当我尝试通过虚拟子域加载图像时 - 例如:

http://img1.example.com/images/672_1000_0_0.jpg

我得到类似的东西:

http://www.example.com/pic.php?picID=672&width=1000&height=0&corners=0

我将非常感谢我的问题的解决方案。提前致谢!

4

1 回答 1

0

我最近遇到了类似的问题,诀窍是使用额外的 RewriteCond 子句(在 2. 行):

RewriteCond %{HTTP_HOST} !^img1.example.com$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^img2.example.com$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^img3.example.com$ [NC] [OR]

如果您有无限的虚拟子域,最好直接用正则表达式替换它,例如:

RewriteCond %{HTTP_HOST} !^img([0-9]+).example.com$ [NC] [OR]

希望有所帮助!

于 2013-07-16T12:54:48.273 回答