这个话题似乎是老调重弹了,也有很多人给出了相应的方法。我的方法如下:

RewriteCond %{REQUEST_URI} !^/wp-includes/images/noimage.png$ [NC]
RewriteCond %{HTTP_REFERER} !^http://[0-9a-z]+\.inspiremedia\.org/.*$ [NC]
RewriteRule \.(jpg|gif|png|zip|gz|rar)$ http://tech.inspiremedia.org/wp-includes/images/noimage.png [R,L]

主要功能位于第二行,当请求的HTTP_REFERER头不输入本站所在的域时,则执行第三行的重写规则,重定向至 noimage.png。 第二行最后的[NC]表示匹配时忽略大小写。第一行用于防止死循环。

2006-12-26

接受建议,将重写规则仅适用于 wp-content/uploads 下的文件。

RewriteCond %{HTTP_REFERER} !^http://[0-9a-z]+\.inspiremedia\.org/.*$ [NC]
RewriteRule wp-content/uploads/.*\.(jpg|gif|png|zip|gz|rar)$ http://tech.inspiremedia.org/wp-includes/images/noimage.png [R,L]