Użyłem następujących reguł w moim pliku htaccess w innych aplikacjach, aby przekierować użytkowników z folderu do subdomeny, ale załadować zawartość z tego folderu podczas uzyskiwania dostępu do tej subdomeny.Subdomeny CakePHP z 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]
Więc jeśli pójdę do: http://cameron.com/admin
skończę na http://admin.cameron.com/
ale zawartość jest ładowany z http://cameron.com/admin
Jednak to nie działa dla CakePHP 2.x powodu jego przepisywanie widocznie ...
w moim pliku .htaccess w /app/webroot
mam:
<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>
Jeśli przejdę do: http://cameron.com/admin
to po prostu próbuje załadować AdminController i nie przekierowuje, a jeśli przejdę do: http://admin.cameron.com/
Po prostu otrzymuję błąd wewnętrznego serwera 500.
Wszelkie pomysły na to, jak uzyskać to działa dla CakePHP?
Jeśli mam rację, czy po prostu chcesz zmienić URL, by wskazywał, że od subdomeny? – Daniel
Spróbuj dodać to stwierdzenie RewriteBase/app/webroot po RewriteEngine On w pliku startowym .htaccess. – SoftwareCarpenter