0

私は次の問題を扱っています:

1 つのメイン ドメイン「example.com」と複数のサブドメインがあります。

one.example.com
two.example.com
three.example.com

サーバー上など。

このサブドメインのコンテンツをフォルダに持っています:

./one/    -> one.example.com
./two/    -> two.example.com
./three/  -> three.example.com

したがって、これらのフォルダーからサブドメインにコンテンツを提供するために、次の htaccess ファイルを使用します。

RewriteCond %{HTTP_HOST}   ^one.example.com [NC]
RewriteCond %{REQUEST_URI} !^/one/.*
RewriteRule   ^(.*)  /one/$1  [L]

正常に動作しますが、サブドメインのコンテンツには次の URL からもアクセスできます。

one.example.com/one/my-content

そのような

one.example.com/my-content

などですので、重複しています。

これは私が解決しなければならない 1 つの問題です。

2 つ目は、example.com のコンテンツにアクセスできることです。

whatever.example.com
(a.example.com, b.example.com etc.)

再び重複します。

だから私の質問は: 重複を作成している URL をリダイレクト/無効にする方法は?

ありがとうございます。多くのバージョンのコードを試しましたが、効果はありませんでした。

4

2 に答える 2

2

次のように、サブドメインへのすべてのリクエストをそのフォルダーにリダイレクトし、ベースドメインへのすべてのリクエストを別のフォルダーにリダイレクトすることで、この問題を解決しました。

RewriteCond %{HTTP_HOST} ^one\. [NC]
RewriteRule (.*) /one$1 [L]

RewriteCond %{HTTP_HOST} ^two\. [NC]
RewriteRule (.*) /two$1 [L]

RewriteRule (.*) /zero$1

動作しているようですが、ブラウザでも URL を変更しています。これが起こらないようにするにはどうすればよいですか?

于 2012-10-25T11:46:26.403 に答える
0

最初の問題については、リクエストをそのフォルダにリダイレクトし、そのディレクトリを存在しないページにリダイレクトするルールを追加できます(404エラーをスローするように)

RewriteCond %{HTTP_HOST} ^one\.example\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} ^one/
RewriteRule . /notexists.html [L]

2 番目の問題については、a.example.com/folder/file.html を要求すると、内部で a.example.com/a/folder/file.html にリダイレクトされるため、これは発生しないはずです (取得する方法はありません)。 'a' の親ディレクトリの内容)

于 2012-09-14T14:28:51.257 に答える