2011-08-04 3 views
0

Я следил за this tutorial для управления субдоменами для установки MODx Revo 2.1.3. Идея состоит в том, что файл htaccess в корневой папке сети перенаправляет вызовы для subdomain.mydomain.com в папку в корневом каталоге веб с тем же именем, что и поддомен, т. Е./Home/mydomain/www/subdomain. Субдомен содержит файлы MODx для запуска страницы, а также другой htaccess для указания всех последующих запросов обратно в корневую папку..htaccess - перенаправление ссылок на страницу путем удаления папки из ссылки

Лучшая его часть работает; Я могу просмотреть домашнюю страницу сайта (что означает, что MODx делает свою часть), но ни одна из ссылок на css, js, images и т. Д. Не работает, и кажется, что пакеты Wayfinder и getResources не выводятся. Ссылки, которые используются для изображений + css + js, - /subdomain/assets...etc; Мне нужно, чтобы ссылки указывали непосредственно на папку/assets. Это похоже на корень .htaccess работает, чтобы перенаправить запрос в папку поддомена, но .htaccess в папке не указывает ничего на корневой каталог для остальных запросов.

Вот моя корневая папка Htaccess, то вторая часть взяты из учебника:

RewriteEngine On 
RewriteBase/

# The Multiple subdomains part 
#REDIRECT SUBDOMAIN TO SUBDIRECTORY OF SAME NAME 
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" 
RewriteCond %{HTTP_HOST} ([a-z0-9][-a-z0-9]+)\.mydomain\.com\.?(:80)?$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/%1 -d 
RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L] 
RewriteRule^- [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] 

и HTAccess папки поддомена просто:

RewriteEngine On 
RewriteBase/

Я знаю, что сайт работает; Я могу получить к нему доступ, используя субдомен, который еще не был обработан, как и учебник. Так что это все, мне просто нужно разобраться с запросами на связь. Может ли кто-нибудь помочь?

+0

Просьба привести пример 1) ссылки на js/css/img (например, ''; 2) Запрошенный URL (например, 'subdomain.example.com/js/main.js') 3) как он перенаправляет (проверьте доступ Apache и журнал ошибок) и 4) как его ДОЛЖНО перенаправляться. – LazyOne

+0

В соответствии с запросом: 1.) ; 2.) http://subdomain.mydomain.com/assets/images/filename.jpg (URL-адрес, отображаемый в браузере) 3.) Выход из журнала доступа Apache: GET /assets/images/filename.jpg HTTP/1.1 " 404 - «http://subdomain.mydomain.com/ 4.) http://subdomain.mydomain.com/assets/images/filename.jpg Все это одинаково для JS и CSS; также ссылки href одинаковы. – Moniarde

+0

Сколько у вас контроля над вашим Apache? Если вы можете редактировать конфигурацию сервера или виртуальный хост - разрешите переписывать отладку («RewriteLogLevel 9»), перезапустите Apache, попробуйте проблемный URL-адрес и проверьте журнал перезаписи - вы должны точно увидеть, что происходит (просто попробуйте очень простой URL-адрес, а не реальный страницы с изображениями и т. д. - журнал перезаписи может стать ОГРОМНЫМ в течение нескольких секунд, если у вас много правил перезаписи и много запросов - сделайте эксперимент максимально чистым). Часть этого я могу предложить только добавить косые черты при ссылке на ресурсы, например. '' – LazyOne

ответ

0

Благодаря некоторой помощи мне удалось найти решение этой проблемы.

# The Multiple subdomains part 
#REDIRECT SUBDOMAIN TO SUBDIRECTORY OF SAME NAME 
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" 
RewriteCond %{HTTP_HOST} ([a-z0-9][-a-z0-9]+)\.spitfireresources\.com\.?(:80)?$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/%1 -d 
#RewriteCond %{REQUEST_FILENAME} !^/js 
#RewriteCond %{REQUEST_FILENAME} !^/css 
#RewriteCond %{REQUEST_URI} !^/assets 
RewriteCond %{REQUEST_URI} !^/ 
RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L] 
RewriteRule^- [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] 

Ключевая строка: RewriteCond %{REQUEST_URI} !^/. Как только это было на месте, все становится доступным. Спасибо всем, кто прокомментировал.

Смежные вопросы