我无法更改css文件中的URL;在apache中使用mod_rewrite

时间:2011-04-06 12:23:34

标签: mod-rewrite url-rewriting

网址是粗体字母,我想在其中进行更改... 它应该被重写为url /csmmail/lib/webmail/folderTree.gif

以下是html片段...

<link href="/csmmail/lib/webmail/folderTree.css?v=bfb38b233d72ba6a690a39394d7c964f"  type="text/css" rel="stylesheet">
x_2az UL, x_2az LI {
 list-style-type: none;
 margin: 0px;
 white-space: nowrap;
}
x_2az UL {
 padding: 0px 0px 0px 16px;
}
x_2az LI {
 padding: 1px 0px 1px 0px;
}
x_2az IMG {
 vertical-align: middle;
}
.x_2le {
 margin-right: 3px;
}
.x_2bq {
 vertical-align: bottom;
 margin-left: 0px;
}
.x_2lf {
 background: ***url(/lib/webmail/folderTree.gif***) no-repeat;
 padding: 2px 0 3px 16px;
}
sprite_folder {
}

我是mod_rewrite的新手; 我试过在每个目录conf文件中使用。

RewriteEngine   on

Options      +FollowSymLinks

RewriteCond     %{HTTP_REFERER} \.(css)$ 

RewriteRule     ^/lib/webmail/folderTree\.gif$ /csmmail/lib/webmail/folderTree.gif [NC]

2 个答案:

答案 0 :(得分:0)

我认为你做错了,只是这样做:

RewriteRule ^/lib/webmail/folderTree\.gif$ /csmmail/lib/webmail/folderTree.gif 

您不能真正依赖HTTP_REFERER,因为所有浏览器都没有设置它。

答案 1 :(得分:0)

您希望HTTP_REFERRER与.css文件匹配。

我猜你是因为你在你的css文件中引用了这个图片而期待这个?这是一个不正确的假设。

引荐来源将始终是您浏览器中加载的实际页面,而不是css页面。

您可以使用像fiddler这样的HTTP嗅探工具来确认这一点 - http://www.fiddler2.com/fiddler2/

尝试删除重写条件以查看是否有效。