日期:2014-05-17  浏览次数:20848 次

求一个apache-rewrite 配置的写法. http://*.abc.com/t.gif ==> http://www.abc.com/t.gif
问题:

因为二级域名导致缓存不统一的问题。
比如   http://test.abc.com/t.gif   和   http://www.abc.com/t.gif
实际上在服务器上是同一个文件   /home/www/abc/t.gif
但是客户端浏览器在缓存图片的时候却没有统一,ie,ff都认为他们是不同的资源。
这样导致了很多相同的文件,比如背景图,css,js   在不同二级域名访问下缓存不统一的问题。

解决方案求助:
  我尽管对   正则比较熟悉,   但是对   apache以及   rewrite的工作方式却不太熟悉。

如果我希望哪位熟悉   apache-rewrite   的高手能帮我写一段小小规则

能够在访问   http://*.abc.com/t.gif   时rewrite到   http://www.abc.com/t.gif

这个规则只对   *.jpg   *.gif   *.css   *.js   有效,对于   *.html   *.htm或者其他类型无效


多谢帮助,就当给我写个   apache-rewrite     入门的小例子吧


   


------解决方案--------------------
rewritecond %{HTTP_HOST} ^.+\.sohu\.com$
rewriterule ^(.*) %{HTTP_HOST}$1 [C]
rewriterule ^(.*)\.sohu\.com.* /ppp/$1.html

这个例子看看有没有有用
------解决方案--------------------
抢分:
RewriteCond %{HTTP_HOST} !^www.abc.com
RewriteCond %{REQUEST_URI} (css|js|jpg|gif)$
RewriteRule /(.*) http://www.abc.com/$1 [R]
------解决方案--------------------
RewriteCond %{HTTP_HOST} !^www.abc.com
RewriteCond %{REQUEST_URI} (\.css|\.js|\.jpg|\.gif)$
RewriteRule /(.*) http://www.abc.com/$1 [R]