Intereting Posts
Как я могу получить изображение с URL-адреса в PHP или JQuery или в обоих? Google app-engine – загруженные файлы не являются общедоступными в облачном хранилище Google Как я могу добавлять файлы cookie при использовании кука-печенья в CURL? Пользовательская команда Laravel Artisan недоступна в работе cron Что такое обработчик сериализации php_binary? Использование переменной сеанса с объектами Почему «…» объединяет два числа в моем коде? Многоуровневое нажатие меню меню со страницы на страницу Проблема при загрузке php-файла в переменную (Загрузить результат php-кода вместо кода в виде строки) Каковы способы поиска узких мест в веб-приложении? База данных SELECT запрос не возвращает результат как получить доступ к переменным PHP из JavaScript? Использование AJAX / jQuery для обновления изображения Есть ли способ позволить cURL ждать, пока не будут выполнены динамические обновления страницы? include () в PHP ведет себя по-разному при обновлении XAMPP

Субдомены CakePHP с htaccess

Я использовал следующие правила в файле 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?

CakePHP и почти любая другая инфраструктура PHP анализируют $ _SERVER ['REQUEST_URI'], чтобы перенаправить ваш запрос на конкретный контроллер

подробнее здесь: https://github.com/cakephp/cakephp/blob/2.6/lib/Cake/Network/CakeRequest.php#L230 ,

поэтому вам просто нужно, чтобы параметры URI запроса SAME были перенаправлены для работы приложения.

Для вашего старого местоположения это было «/ admin», для нового местоположения оно должно быть одинаковым, но вы не хотите его передавать, поэтому лучше изменить задачу следующим образом:

«Когда вы перейдете на admin.site.com, вы будете перенаправлены на сайт.com/admin».

Это можно сделать так:

RewriteRule ^([^.]+)\.example\.com http://example.com/$1

Это не рабочий пример правила, потому что вам также нужно переписать URI запроса субдомена, чтобы все работало и оно зависело от ваших требований, но может быть так:

RewriteRule ^([^.]+)\.example\.com(.*) http://example.com/$1/$2

UPD: реальный пример

 $ cat app/webroot/.htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] RewriteCond %{HTTP_HOST} ^admin.example.com RewriteRule ^(.*)$ http://example.com/admin/$1 [P,L,NC] </IfModule> 
  <IfModule mod_rewrite.c> #standard cake htaccess stuff ... RewriteCond %{HTTP_HOST} ^profile\.thechatfun\.com$ [NC] RewriteRule ^(.*)$ http://www.thechatfun.com/users/profile/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^chat\.thechatfun\.com$ [NC] RewriteRule ^(.*)$ http://www.thechatfun.com/chats/index/$1 [R=301,L] </IfModule>