0

ここでスタックオーバーフローに関するいくつかの興味深い考えを見つけましたが、私にとって十分に明確に述べられているものはないので、それができるかどうか自問する必要があります:)

状況:

私はApache httpサーバーがインストールされたLinuxと、コンテンツが異なるwwwディレクトリ内のフォルダー内の多数のサイトを持っています。

まあ言ってみれば:

www/Site1 (Phpbb)
www/Site2 (Wordpress)
www/Site3 (Own web pages)

私は、Site3 で使用するためのドメインを 1 つ所有しています (site3.com、www.site3.com としましょう)。no-ip.org にさらに 2 つのドメインを作成しました (それらを site1.sytes.net および site2.sytes.net と呼びましょう)。作成された 3 つのドメインはすべて、Linux (Apache) サーバーの IP アドレスのポート 80 を指しています。

これで、これらのドメインの準備が整いました。

www.site3.com
site1.sytes.net
site2.sytes.net

今質問:

これらのドメインからのコンテンツを必要とするユーザーのために、特定のディレクトリへのリダイレクトを作成する方法。「site1.sytes.net」を取得したい(そしてそれをブラウザに書き込んだ)ユーザーがSite1ディレクトリを指し、ブラウザアドレスを書き換えてそのディレクトリを省略し、「http://site1.sytes.net」だけを入れたいと思っています。

例えば:

User want: site1.sytes.net [/index.html]
Server goes to: www/Site1 [/index.html]
User see in browser: http://site1.sytes.net [/index.html]

等々:

site2.sytes.net [/index.html] => www/Site2 [/index.html]
www.site3.com [/index.html] => www/Site3 [/index.html]

私が間違っていなければ、HTTP_HOST はドメインだけを返すので、ユーザーが site1.sytes.net と site2.sytes.net のブラウザに何を書き込んだかを調べようとしても役に立ちません (sytes.net だけを返すため)。

4

1 に答える 1

0

確かにあなた%{HTTP_HOST}が望むものであり、そうです、それはドメインにのみ一致します. ただし、それを条件で使用し、%{REQUEST_URI}またはルール自体を使用して URI と照合します。これをドキュメントルートのhtaccessファイルに入れてみてください(これはすべてのサイトで同じであると思います。そうでない場合、これを行う意味はありません):

RewriteEngine On
RewriteCond %{HTTP_HOST} site1.sytes.net [NC]
RewriteCond %{REQUEST_URI} !^/Site1
RewriteRule ^(.*)$ /Site1/$1 [L]

RewriteCond %{HTTP_HOST} site2.sytes.net [NC]
RewriteCond %{REQUEST_URI} !^/Site2
RewriteRule ^(.*)$ /Site2/$1 [L]

RewriteCond %{HTTP_HOST} www.site3.com [NC]
RewriteCond %{REQUEST_URI} !^/Site3
RewriteRule ^(.*)$ /Site3/$1 [L]
于 2012-07-29T04:39:25.267 に答える