Rewrite для поддомена но с сохранением остальных ссылок

Статус
В этой теме нельзя размещать новые ответы.

Albert22

Старатель
Регистрация
30 Мар 2008
Сообщения
270
Реакции
11
Привет
Имеется вот такой набор директив:
Код:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.tld(.*)$
RewriteCond %{HTTP_HOST} ^(www\.)?(([a-zA-Z0-9-]+)\.){1}domain.tld$
RewriteCond %{REQUEST_URI} !profile/
RewriteRule ^(.*)$ profile/%2/$1
Он работает — маскирует domain.tld/profile/user под user.domain.tld. В DNS всё прописано.
Но на отображаемой странице подключены стили и скрипты, причём вызываются по относительному пути с корня. Т.е. код
HTML:
<link rel="stylesheet" type="text/css" href="/styles/styles.css">
на адресе
Код:
http://user.domain.tld
пытается загрузить стиль с
Код:
http://user.domain.tld/styles/styles.css
вместо основного
Код:
http://domain.tld/styles/styles.css
То же самое и Javaскрипты: разные HTTP-запросы они выполняют по текущему домену (который является поддоменом), а там конечно же ничего нет.
Как сделать чтобы фильтровался запрашиваемый адрес и всё, что содержит хоть какой-то путь, возвращать назад на основной домен? Я переписал адреса подключаемых файлов на фиксированный основной домен, но это не самый разумный путь учитывая то, что вконтакте в теле скриптов сохранены относительные пути, и на поддоменах всё работает, запросы выполняются.
Подскажите пожалуйста
 
заставить именно в коде страницы браузер считать конструкцию вида "/styles/styles.css" как "http://domain.tld/styles/styles.css" нереально... т.к. браузер САМОСТОЯТЕЛЬНО подставляет адрес домена, раз ты указываешь ему относительность (пусть даже и от корня). Откуда вообще это браузеру знать?

Другой разговор, что можно попытаться разместить все подгружаемые из основного домена файлы (CSS, JS и т.д.) в какую-то одну(!!!) конкретную папку в коре домена, например "srsc" и дописать в htaccess строку безусловного перенаправления адресов с содержанием этой строки на домен при условии, что адрес на поддомене...

Саму регулярку не напишу, т.к. навскидку рискую накосячить сильно =)
 
  • Заблокирован
  • #3
ИМХО, вариант с относительными путями не катит, я всегда использую явный путь, ибо проблем не оберешься!
 
Да, попробуй добавить тег BASE, только не url туда вписать, а адрес основного домена. Типа: <base href="http://domain.tld/">.

Хотя, я не пробоавал, получится ли таким образом, разрешить выполнение JavaScript в рамках domain.tld при запросе страницы с user.domain.tld (Надо попробовать, отпишись потом о результатах, пожалуйста)
 
Вот как раз с этим и намучался, пока вернул всё назад.
Говорят document.domain помогает, но у меня пока безрезультатно
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху