2016-03-19 10 views
0

私は単一のApacheサーバー上で2つのサイトを実行したいが、固定ドメインはないので、基本的には "site2"という単語を含むURLに/ site2フォルダにリダイレクトするものが必要です。 ..例えば部分的なURLに基​​づくApacheのリダイレクト

http://wordssite2.blah.com -> /var/www/html/site2/index.html http://wordssite2.blah2.com/index.html -> /var/www/html/site2/index.html http://wordssite2.foo.com/gallery.html -> /var/www/html/site2/gallery.html http://wordssite1.blah.com/gallery.html -> /var/www/html/gallery.html

は、私は、Apacheに新たなんだ、とリダイレクトルール、または仮想ホストを使用してこれを行うかどうかを知ることはできません。リダイレクトはワイルドカードをサポートしているようだが、VirtualHostsは固定ドメイン名を望んでいるようだ。

答えて

0

次の設定では、「サイト2」を含むドメインのバーチャルホストファイルに配置する必要があります。

<VirtualHost *:80> 

     DocumentRoot /var/www/html/site2/ 
     ServerAlias *site2* 

     RewriteEngine On 
     RewriteCond %{HTTP_HOST} "site2" 
     RewriteRule ^(.*)$ $1 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 

ServerAliasディレクティブは単語「サイト2」を含む要求を処理し、これを適用するようにApacheを伝えるために使用されています特定の仮想ホストの設定。

RewriteCondディレクティブは、着信リクエストのドメイン名に「site2」が含まれているかどうかを確認します。サーバー変数HTTP_HOSTは、HTTP要求ヘッダーで受信したドメイン名を返します。

それが本当であるならば、RewriteRuleは(DocumentRoot指令で述べた)「/ var/www/htmlと設定/サイト2」フォルダからの要求にサービスを提供し、$1パラメータによって抽出されたURIを追加します。

注:

  1. あなたが最初の仕事にこの設定のためにApacheのmod_rewriteのを有効にする必要があります。

  2. 「site2」ドメインの正しいDNSレコードを設定し、トラフィックをサーバーに送信する必要があります。

関連する問題