Я использовал следующие правила в файле htaccess в других приложениях, чтобы перенаправить пользователей из папки в поддомен, но загружать содержимое из этой папки при доступе к этому поддомену.
# REWRITE SUBDOMAIN TO FOLDER
RewriteCond %{HTTP_HOST} ^admin\.cameron\.com$
RewriteRule !^admin/? admin%{REQUEST_URI} [NC,L]
# REWRITE FOLDER TO SUBDOMAIN
RewriteCond %{THE_REQUEST} \s/admin/([^\s]*) [NC]
RewriteRule ^ http://admin.cameron.com/%1 [R=301,L]
Итак, если я перехожу к: http://cameron.com/admin
Я заканчиваю на http://admin.cameron.com/
Но содержимое загружается из http://cameron.com/admin
Однако это не работает для CakePHP 2.x из-за его переписывания, по-видимому...
В моем файле htaccess в /app/webroot
у меня есть:
<IfModule mod_rewrite.c>
RewriteEngine On
# CAKEPHP RULES
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
# REWRITE SUBDOMAIN TO FOLDER
RewriteCond %{HTTP_HOST} ^admin\.cameron\.com$
RewriteRule !^admin/? admin%{REQUEST_URI} [NC,L]
# REWRITE FOLDER TO SUBDOMAIN
RewriteCond %{THE_REQUEST} \s/admin/([^\s]*) [NC]
RewriteRule ^ http://admin.cameron.com/%1 [R=301,L]
</IfModule>
Если я перехожу к: http://cameron.com/admin
, он просто пытается загрузить AdminController и не перенаправляет вас, и если я перейду к: http://admin.cameron.com/
, я просто получу 500 Внутреннюю ошибку сервера.
Любые идеи о том, как заставить это работать на CakePHP?