1

にアプリがあるとしますexample.com.

ある顧客は、そのコンテンツをexample.com/customer/hisname/.

顧客が自分のコンテンツにドメインを割り当てるhisname.comことができるようにしたいと思いexample.com/customer/hisname/ます。

そのために、ルートディレクトリを同じ場所に持つ2つの仮想ホストを作成し、.htaccessファイルを作成してhttp_hostをフィルタリングし、example.comでない場合はリクエストを渡すように書き直しました。 example.com/customer/hisname/ へ。

それでも、URI の /customer/hisname/ 部分を取得していない間は、このアプローチは機能しません。example.com/index.php の hisname.com/list/ にアクセスすると、/list/ と (接頭辞として) /customer/hisname/ の両方が必要になります。 /リスト/だけです。

では、これに対する正しいアプローチは何でしょうか?

4

2 に答える 2

2

Virtual Hostsを作成できる場合は、 mod_rewriteを使用する代わりに、適切なドキュメント ルートを設定する必要があります。

<VirtualHost w.x.y.z:80>
    ServerAdmin webmaster@hisname.com
    DocumentRoot /path/to/www/customer/hisname
    ServerName hisname.com
    ...
</VirtualHost>

これが不可能な場合は、そのhost部分を抽出して内部で書き換えることができます

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^(?www\.)?example\.com$
RewriteCond %{HTTP_HOST} ^(.+)\.com$
RewriteRule ^ /index.php?prefix=customer/%1&request=%{REQUEST_URI} [L,QSA]
于 2013-03-31T13:37:51.427 に答える