私は現在、この CakePHP セットアップを持っています: CakePHPの可変プレフィックスルーティング
ワイルドカード サブドメインを処理するための DNS*.example.com
および Apache エントリは既に存在します。残念ながら、CakePHP のデフォルトの .htaccess をワイルドカード サブドメイン コードとマージできないようです。
以下は、CakePHP のデフォルトの .htaccess コードです。
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
私がやりたいことの例:
example.com/controller/action/a
-> example.com/global/controller/action/a
(global
はリテラルです)
X.example.com/controller/action/a/b/c
->example.com/X/controller/action/a/b/c
基本的に、X を最初の「ディレクトリ」にしてから、残りの URL を維持します。(X
は任意の英数字の文字列)
フォルダーX
は絶対に存在しないことに注意してくださいapp/webroot
。一度アクセスすると、単に CakePHP に書き換えられます。私は CakePHP 部分の動作を変更したくありません。上記の URL の例を、そのページにアクセスするのと "同等" に書き換える必要があるだけです。その後、CakePHP のhtaccess
エントリによって処理されます。
参考までにapp/webroot/.htaccess
:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]