2

mod の書き換えについて頭を悩ませようとしていますが、これを理解できないようです。

次のことを行う方法はありますか?

ユーザーは次のように入力します。http://wildcard.mydomain.com

サイレントに書き込みます:

http://mydomain.com/index.php?username=wildcard
4

2 に答える 2

5

でドメインの最初の部分を取得し、RewriteCondこれを で使用する必要がありRewriteRuleます。追加RewriteCondの s は、www.mydomain.com書き換えindex.phpを防止するためにあります

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} !index\.php
RewriteCond %{HTTP_HOST} ^(.+?)\.mydomain\.com$
RewriteRule .* /index.php?username=%1 [L]

しかし、これは必要な機能のごく一部にすぎません。さらに、すべてのusername.mydomain.comドメイン名の DNS エントリをセットアップするか、ホストを指すワイルドカード DNS エントリをセットアップする必要があります。 *.mydomain.com

jcraine.mydomain.comそれ以外の場合、たとえば、クライアントは に接続しようとしますが、DNS エントリが見つからず、不平を言います。

これが仮想ホストServerAliasの場合は、ユーザー名ごとにも追加する必要があります

ServerAlias jcraine.mydomain.com

またはすべてのサブドメインをキャッチするワイルドカード

ServerAlias *.mydomain.com
于 2013-03-11T08:58:08.907 に答える
0

トリックを行う必要があります。

RewriteCond %{HTTP_HOST} ^(users)\.example\.com$
RewriteRule ^(.*)$    http://www.example.com/?username=%1 [L]
于 2013-03-11T03:32:32.400 に答える