Web サーバーで CakePHP アプリを使用していますが、サブドメインで WIP joomla を使用したいと考えています。また、サブドメインを処理する Web ホスティングの方法が原因で、htaccess に適切な条件を記述して機能させることができません。デフォルトでは、私の CakePHP アプリはサーバーの /www fodler にあり、その htacces は次のようになります。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
サブドメインを処理する私の Web ホスティング プロバイダーの方法は、必要なサブドメインとして名前が付けられた /www のサブフォルダー内にフォルダーを作成し、それにリダイレクトすることです。
したがって、サブドメイン joomla.mydomain.com を作成する場合は、フォルダー /www/subdom/joomlaを作成し、適切な条件とルールを htaccess に追加する必要があります。
# subdomains(with or without www in the begenning)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
しかし、これを htaccess に追加すると、cakePHP は以前と同じように動作しますが、joomla サブドメインにアクセスすると Internal Server Error がスローされます。ただし、最後の書き換えルールをコメントアウトすると
#RewriteRule ^$ app/webroot/ [L]
#RewriteRule (.*) app/webroot/$1 [L]
サブドメインが正常に機能し始めます。