Я не могу изменить URL в css файле; используя mod_rewrite в apache - PullRequest
0 голосов
/ 06 апреля 2011

URL-адрес выделен жирным шрифтом, и я хочу внести изменения ... Он должен быть переписан в 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 голосов
/ 07 апреля 2011

Вы ожидаете, что HTTP_REFERRER будет соответствовать вашему файлу .css.

Полагаю, вы ожидаете этого, потому что у вас есть ссылка на изображение в вашем файле css? Это неверное предположение.

Реферер всегда будет реальной страницей, которая была загружена в вашем браузере, а не страницей css.

Вы можете подтвердить это с помощью инструмента HTTP сниффинга, например, fiddler - http://www.fiddler2.com/fiddler2/

Попробуйте сбросить условие перезаписи, чтобы проверить, работает ли оно.

0 голосов
/ 06 апреля 2011

Я думаю, что вы делаете это неправильно, просто сделайте:

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

Вы не можете действительно полагаться на HTTP_REFERER, так как все браузеры не устанавливают его.

...