そこで、URL をきれいにするための mod_rewrite ルールをいくつか用意しました。
つまり、次のように入力された URL を変更したいということです。
http://test.domain.com/cheese/wine/
test.php などへのバックグラウンド アソシエーションに:
http://test.domain.com/test.php?client=test&page=cheese/wine
PS: 上記のクライアント変数は、実際には [test].domain.com です。
書き換えログによると、すべての RewriteRule は正常に動作しているように見えますが、400 エラーしか表示されません。
vHost ファイル:
<VirtualHost *:80>
ServerName *.domain.com
DocumentRoot /var/www/dir/
...
RewriteEngine on
# drop www. from subdomains
RewriteCond %{HTTP_HOST} ^www\.(.*)\.domain.com$
RewriteRule ^/?(.*)$ http://%1.domain.com/$1 [R=301]
# rewrite x.domain.com/abc to abc?client=x
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain.com$
RewriteRule ^/?(.*)$ $1?client=%1 [QSA]
RewriteRule ^/?(.*)$ test.php?page=$1 [QSA,L]
...
</VirtualHost>
誰にもアイデアはありますか?
編集: (www.)domain.com は別の方法で処理されるため、リクエストのホスト名 (*.domain.com) はそのままにしておく必要があります。