mod_rewrite URL-адрес прокси-сервера отсутствует изображения/css

У меня есть следующий mod_rewrite с использованием флага прокси для перенаправления из одной папки URL в другой субдомен сайта следующим образом:

Файл .htaccess, помещенный в папку http://www.domain.com/test/:

RewriteEngine on
RewriteRule ^($|/.*) http://subsite.site.com/$1 [L,P]

Проблема, изображения, CSS и ссылки не отображаются должным образом. Ссылки, кажется, указывают на: http://www. домен .com/linkname.html

Я пытался сделать RewriteBase /test/ и / безуспешно и не смог найти другого способа сделать это.

Что мне не хватает в приведенном выше коде, чтобы он работал с относительными путями в целевом URL?


person user1502298    schedule 04.07.2012    source источник
comment
Вы уверены, что рассматриваемые URL-адреса являются относительными?   -  person joshOfAllTrades    schedule 04.07.2012
comment
Если я помещаю правила перезаписи в .htaccess в корневую папку, все работает нормально, но в подпапке изображения не работают.   -  person user1502298    schedule 05.07.2012
comment
images/css отображаются как домен . com/thesubsitelink/ вместо домен . com/test/thesubsitelink/   -  person user1502298    schedule 05.07.2012
comment
Кажется, единственный способ решить эту проблему с помощью mod_proxy_html   -  person user1502298    schedule 06.07.2012


Ответы (1)


О, вы хотите изменить внутреннее содержание?

Mod_rewrite изменяет только заголовки, а не контент, и вам определенно понадобится что-то еще, например mod_proxy_html. Однако перезаписи контента только для изменения URL-адресов обычно можно полностью избежать (при условии, что вы контролируете свой контент), сделав все пути законно относительными. В таких случаях все пути в контенте должны быть такими: linkname.html или some_path_from_here/linkname.html вместо /linkname.html или some_path_from_here/linkname.html

person joshOfAllTrades    schedule 06.07.2012
comment
Спасибо .. Да, мне нужно изменить содержание. Я пробовал mod_proxy_html, но это тоже не удалось. Единственный способ исправить это, поставив правила mod_rewrite в корень, чтобы прокси перенаправлял каждую папку в пункт назначения. Но это перезапишет мой текущий сайт. Это мой неудачный код mod_proxy_html, есть предложения? ProxyPass /test/ subdomain.DestinationSite.com ProxyHTMLURLMap subdomain.DestinationSite.com /test ‹Location /test/› ProxyPassReverse subdomain.DestinationSite.com SetOutputFilter proxy-html ProxyHTMLURLMap / /test/ ProxyHTMLURLMap /test /test ‹/Location› - person user1502298; 09.07.2012