перенаправление поддомена .htaccess в одну конкретную папку — приложение CakePHP

#.htaccess #cakephp #subdomain

#.htaccess #cakephp #поддомен

Вопрос:

Я пытаюсь настроить поддомен для своего приложения, потому что я не хочу, чтобы код администратора смешивался с теми же папками, что и обычный пользовательский код. Я использую 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:

Можете ли вы поместить этот код в свой .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 и access log.