Я установил CakePHP на виртуальном хостинге в подкаталоге (cakeDomain). Используя htaccess в корневом каталоге (mainDomain), я указал на него другой домен (cakeDomain), вот так:
# /.htaccess
# cakeDomain redirect rules
RedirectMatch 301 ^/cakeDomain/$ http://cakeDomain.com/
# handle domain root and skip subfolders
RewriteCond %{HTTP_HOST} cakeDomain.com
RewriteCond %{REQUEST_URI} !^/cakeDomain/
RewriteCond %{REQUEST_URI} \..+$
RewriteRule ^(.*)$ cakeDomain/$1 [L]
# add trailing slash to subfolders (eg abc to: abc/)
RewriteCond %{HTTP_HOST} cakeDomain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1/ [L,R=301]
# handle files in subfolders
RewriteCond %{HTTP_HOST} cakeDomain.com
RewriteCond %{REQUEST_URI} !^/cakeDomain/
RewriteRule ^(.*)$ cakeDomain/$1/ [L]
RewriteCond %{HTTP_HOST} www.mainDomain.com/cakeDomain/
RewriteRule %{HTTP_HOST} www.cakeDomain.com [L]
Посещение mainDomain.com/cakeDomain корректно перенаправляет вас на cakeDomain.com
Файлы CakePHP хранятся так:
/cakeDomain/app/...
/cakeDomain/lib/...
/cakeDomain/...
etc.
При посещении сайта cakeDomain.com открывается правильная главная страница, но перед всеми ссылками стоит установленный каталог:
cakeDomain.com/cakeDomain/controller/action/param1
Вместо:
cakeDomain.com/controller/action/param1
Любые идеи, как это исправить?
Обратите внимание, из моих многочисленных поисков, что многие люди сразу же предлагают виртуальные хосты. Это не вариант здесь; мой хостинг является виртуальным хостом. Я предполагаю, что это решение требует трюков с htaccess и/или маршрутизацией. Заранее благодарим вас за любую помощь, которую вы можете предоставить.