.htaccess перенаправление поддоменов в одну конкретную папку - CakePHP App - PullRequest
4 голосов
/ 27 мая 2011

Я пытаюсь настроить поддомен для своего приложения, потому что я не хочу, чтобы код администратора смешивался в тех же папках, что и обычный код пользователя. Я использую CakePHP на сервере PHPfog, поэтому я могу использовать только .htaccess для создания поддоменов. Я включил поддержку поддомена подстановочных знаков.

Вот моя структура папок:

app  
app-admin  
cake  
plugins  
vendors  
index.php  
.htaccess  

В папке «app» находится код сайта «обычного пользователя». Папка app-admin, конечно же, предназначена для администраторов.

Я пытаюсь получить конкретное правило перезаписи, которое перенаправит все, что происходит на admin.mydomain.com, в папку «app-admin». Все остальные субдомены должны игнорироваться (отправляются в папку «app»).

Стандартный файл .htaccess в приложении CakePHP выглядит следующим образом:

RewriteEngine on  
RewriteRule    ^$ app/webroot/    [L]  
RewriteRule    (.*) app/webroot/$1 [L]  

Прямо сейчас я пытаюсь это без удачи:

RewriteEngine on  
RewriteCond %{HTTP_HOST} ^admin[NC]  
RewriteRule    ^$ app-admin/webroot/    [L]  
RewriteCond %{HTTP_HOST} ^admin[NC]  
RewriteRule    (.*) app-admin/webroot/$1 [L] 

RewriteRule    ^$ app/webroot/    [L]  
RewriteRule    (.*) app/webroot/$1 [L]  

Любая помощь, чтобы получить эту функцию будет принята с благодарностью.

1 Ответ

2 голосов
/ 27 мая 2011

Можете ли вы вставить этот код в свой .htaccess и повторить попытку:

Options +FollowSymlinks -MultiViews
RewriteEngine on  

RewriteCond %{HTTP_HOST} ^admin\. [NC]  
RewriteRule ^(?!app-admin/) app-admin/webroot%{REQUEST_URI} [L,NC]

RewriteRule ^(?!app/) app/webroot%{REQUEST_URI} [L,NC]

Также сообщите, пожалуйста, некоторые подробности, например, о том, какие URL не работают.Хорошее место для просмотра - apache error.log и журнал доступа.

...