2015-11-08 2 views
0

У меня есть установка Perch CMS на серверной подпапке (это основной домен на учетной записи массового хостинга, поэтому вы не можете использовать подпапку).Используйте mod_proxy, чтобы указать на подпапку

я использовал:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?MYSITE.com$ 
RewriteCond %{REQUEST_URI} !^/SUBFOLDER/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /SUBFOLDER/$1 

RewriteRule ^(/)?$ SUBFOLDER/index.php [L] 

И я установить пути конфигурации в CMS, чтобы включить/подпапка /. Все работало нормально.

Затем я обнаружил, что CMS использует DOCUMENT_ROOT во множестве функций (и это не так просто, как найти их все и добавить подпапку), в основном для создания страниц. Это означает, что новые файлы страниц хранятся в корне сервера, а не в подпапке.

Поддержка окуня предлагает использовать mod_proxy, чтобы указать на субдомен и удалить все ссылки в PHP в подпапку. Я прочитал документацию и не вижу ничего похожего на эту проблему. У кого-нибудь есть пример использования, подобного этому, или знаете хороший метод?

ответ

0

Я думаю, что поддержка относится к прокси-серверу для субдомена вместо переписывания в подпапку, являющуюся субдоменом. Поэтому убедитесь, что /Subfolder настроен правильно как субдомен, тогда вы можете сделать что-то подобное прокси-серверу для субдомена, используя флаг P.

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www\.)?MYSITE\.com$ 
RewriteCond %{REQUEST_URI} !^/SUBFOLDER/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ http://subfolder.example.com/$1 [P] 
ProxyPassReverse "/" "http://subfolder.example.com/" 

RewriteRule ^(/)?$ http://subfolder.example.com/index.php [P] 
+0

Спасибо, это поставило меня в нужное русло! Поскольку это домен верхнего уровня на моем массовом хостинге, я пошел с этим: 'RewriteRule^(example.com)? $ Http://subfolder.example.com/$1 [P]' Это работает очарование для дома но все скрипты и ссылки нарушены. Я могу связаться с ними через путь субдомена, но не прокси-сервер ... Я что-то пропустил? – Doooder

+0

Кроме того, я нахожусь в .htaccess, поэтому не могу использовать ProxyPass. – Doooder

+0

вы можете удалить прокси-серверную линию. почему вы использовали этот 'RewriteRule^(example.com)? $', который не собирается захватывать ни одну из страниц. –