0

サブドメイン エイリアスを管理するためのこのコードがあります。sub.domain.com を参照すると、domain.com/fp/sub が表示されます。

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule (.*) /fp/sub/$1

セットアップするこれらのサブドメインがたくさんあります。正しいサブドメイン/フォルダー名の代わりにいくつかの変数を配置して、このプロセスを自動化する方法はありますか?

このコードを試してみましたが成功しませんでした

RewriteCond %{HTTP_HOST} ^(sub1|sub2)\.domain\.com$
RewriteRule (.*) /fp/$1/$2
4

1 に答える 1

1

フランチェスコ、最初にあなたの例を修正すると、ルールは次のようになります。

RewriteRule ^(.*) fp/%1/$1         [L]

% 変数は、最後に成功した cond regexp マッチで設定されます。

次に、 Rewrite Mapsmass virtual hostsを使用するなど、システムまたは vhost 構成にアクセスできる場合は、多くのオプションがあります。そのようなアクセスが .htaccess に制限されていない場合は、既に行っているように 1 つ以上のルールを使用する必要があります。1 つのバリアントは、次のようなターゲット ディレクトリの存在チェックを使用することです。

RewriteCond %{HTTP_HOST}            ^(\w+)\.domain\.com$
RewriteCond %{DOCUMENT_ROOT}/fp/%1 -d
RewriteRule (.*)                   fp/%1/$1            [L]

共有ホスティング サービスを使用している場合、書き換えの実行時に DOCUMENT_ROOT が適切に設定されない可能性があることに注意してください。その場合、SHS プロバイダーは、%{ENV:DOCUMENT_ROOT_REAL} など、同じことを行う環境変数を設定します。調べるためにphpinfoを実行してください。これをデバッグする方法の詳細については、 .htaccess 書き換えルールをデバッグするためのヒントを参照してください。

于 2012-07-28T15:13:13.677 に答える