mod_rewrite, чтобы перезаписать вызовы в корень HTML - PullRequest
1 голос
/ 03 августа 2009

Просто быстрая вещь, но я не могу пройти мимо.

Допустим, в ваших html-файлах есть ссылки на изображения и css-файлы, что-то вроде этого: image и так далее. Теперь, если вы хотите добавить правило перезаписи мода, чтобы сопоставить эти адреса с чем-то вроде /subset/img/myimage.jpg, как бы вы это сделали?

Насколько я понял, я не мог перезаписать пути, начинающиеся с /. И пока вы это делаете, было бы неплохо, если бы существовало правило, которое выполняло бы это сопоставление для всех файловых запросов.

Спасибо!

Редактировать: И еще одна вещь. Есть также относительные пути (генерируемые tinyMCE), которые работают так: "../../../../img/myimage.jpg". Я на самом деле не уверен, почему они работают, потому что эти пути будут отображаться где-то намного ниже public_html. Любая помощь с этим будет также оценена.

Ответы [ 2 ]

0 голосов
/ 03 августа 2009

Попробуйте это правило:

RewriteRule ^img/.* subset/$0 [L]

А теперь второй вопрос: относительные URI всегда преобразуются в абсолютный URI перед отправкой на сервер. Таким образом, клиент разрешит ../../../../img/myimage.jpg на основе базового URI (см. RFC 2396, 5.2. Разрешение относительных ссылок на абсолютную форму). Таким образом, сервер всегда получит абсолютный путь URI, который он затем может добавить к корневому пути документа для сопоставления запрошенного пути URI с файловой системой.

0 голосов
/ 03 августа 2009

Ааа! Извините за глупость. Вам, конечно, нужно обрабатывать запросы, которые сопоставлены с корнем документа В корне документа. Вы видите, я работал в подкаталоге.

Тот факт, что работают пути, которые отображаются ниже public_html или www, все еще меня озадачивает. Но я предполагаю, что лишние "../" просто игнорируются и отображаются в корне документа.

...