2015-11-11 3 views
2

Мне нужно получить доступ к моему сайту, который находится в подпапке моего домена..htaccess: скрытие субдомена с перенаправлением прокси/переписыванием

Задача. Из-за моей структуры хостинга все сайты находятся на сервере основного домена в подпапках. Домены отображаются в эти папки для каждого сайта. Мастер домена, однако, отображается в корневом каталоге сервера, как это -

•/WWW/(корень www.masterdomain.com)

  • /папка 1/(корень www.site1. ком)

  • /папка 2/(корень www.site2.com)

  • /папка 3/(корень www.site3.com)

  • /папка 4/(искомый корень мастер домена)

Если я установить мою CMS в папке 4 все нормально, НО код CMS создает новые активы в корневом каталоге сервера (с помощью DOCUMENT_ROOT я думаю), а НЕ в папке.

Покушения затруднительных 1:

Используйте переписаны, чтобы удалить папку и установить все пути включить вложенный. Не удалось - CMS действует по желанию, но активы все еще созданы в корне.

Покушение затруднительное 2:

Карта субдомен в папку и переписать URL, чтобы удалить субдомен. Ошибка: CMS работает на субдомене и создает активы в подпапке (win!), Но не может переписать субдомен.

Покушение затруднительных 3:

Карта субдомны в папку, и использовать флаг прокси из основного домена для загрузки содержимого из него незаметно.

Прогресс сделан! На главной странице отображается правильный URL, однако связанные файлы и подпапки не работают.

Так я теперь до моего веб-приложение от: app.exampledomain.com (приложение отлично работает на всех фронтах) ИЛИ exampledomain.com (прокси в сущности, все вложенные папки и ссылки сломана)

Вот мой Htaccess:

Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/

# Proxy subfolders 
RewriteRule ^exampledomain.com/(.+?)?$ http://app.exampledomain.com/$1 [P,L,NC] 
# Proxy main 
RewriteRule ^(exampledomain.com)?$ http://app.exampledomain.com/ [P,L,NC] 

Так почему мои вложенные папки/активы не работает? Проблема с .htaccess? Плохая логика?

Важных примечаний - ПОДПАПКА страница называется index.php так можно получить доступ из - /папок/ Сломанные ссылки на странице находятся в этом формате - JS/foundation.min.js

Спасибо.

ответ

0

RewriteRule ничего не знает о доменных именах, он работает только с локальным путем.

Вместо этого проверьте имя домена в RewriteCond:

RewriteCond %{HTTP_HOST} ^(www\.)*exampledomain\.com$ [NC] 
RewriteRule (.*) http://httpd.apache.org/$1 [P,L] 

Но использование mod_alias или VirtualHost будет более правильным решением здесь.

+0

Благодарим за подсказки. VirtualHost недоступен для меня в этом случае, но я скоро посмотрю на mod_alias. – Doooder

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