.htaccess - перенаправить ссылки на страницу, удалив папку из ссылки - PullRequest
0 голосов
/ 04 августа 2011

Я следовал этому руководству для управления поддоменами для установки MODx Revo 2.1.3. Идея состоит в том, что файл htaccess в корневой веб-папке перенаправляет вызовы subdomain.mydomain.com в папку в корневом веб-каталоге с тем же именем, что и поддомен, т.е. / home / mydomain / www / subdomain. Поддомен содержит файлы MODx для запуска страницы, а также другой htaccess для направления всех дальнейших запросов обратно в корневую папку.

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

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

1 Ответ

0 голосов
/ 08 августа 2011

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

# 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} !^/.Как только это было сделано, все становится доступным.Спасибо всем, кто прокомментировал.

...