2011-09-14 11 views
2

標準のLAMPセットアップがあり、適切な名前のフォルダが存在する限りサブドメインを自動的に作成しようとしています。サブフォルダをサブフォルダに転送し、サブフォルダの.htaccess mod_rewriteのルールを保存する

あなたはのMediaTempleのGridServerサービスを共有ホスティングに精通している場合、私はそれがワイルドカードのサブドメインを処理する方法エミュレートしようとしている:サブドメインという名前のフォルダを探し、subdomain.domain.comが要求されている場合

  • を.domain.com
    • フォルダーが見つかった場合は、そのフォルダーをホームとし、そこにある可能性のある.htaccessファイルに従って、内部でサイトを提供します。私は私のルートドメインにある.htaccessのmod_rewriteを言われてきた
    • フォルダが見つからない場合は、単に表示domain.com

が進むべき道である、と私は検出することができましたサブドメインを少なくとも指し、少なくとも適切なサブフォルダを指していますが、サブドメインのフォルダがどこにあるかをサーバーが認識すると、サブドメイン.domain.com .htaccessファイルのmod_rewriteが引き継ぐ機会はありません。あなたが見ることができるように、subdomain.domain.com内部サイトはに依存しているので、

domain.com 
    html 
     .htaccess 
     vhosts 
      subdomain.domain.com 
       html 
        .htaccess 
        pages 
         index.php 
         pagename.php 

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-]+)\.domain.com$ 
RewriteRule ^(.+) /vhosts/%1.domain.com/html/pages/$1.php [L,QSA] 

...そして、私のフォルダ構造:

は、ここにそのための私の.htaccessですページファイルはサーバーが要求する場所ではないため、機能するためには独自のmod_rewriteです。

私はおそらく、ルートドメインの.htaccessルールに適切な条件を含めることができると知っていますが、私はこれらのサブドメインと全く異なるドメイン名を指すことができるようにする必要がありますサブドメインはsubdomain.domain.comとmydomain.comを介してアクセス可能です)、これらのsubdomain.domain.comフォルダは完全に自立する必要があります。

それで、自分のサーバーが正しい場所にサブドメインのフォルダを探し、自分の.htaccess mod_rewritesが動作するようにするにはどうすればいいですか?

ご協力いただきありがとうございます。


ちょうど誰かがmod_rewritesはそれについて移動する間違った方法であり、mod_vhsは、私が使用したいものであることを示唆していました。誰もmod_vhsについて知っていますか?

答えて

2

私はそれが仮想ホストを使用して動作するようになった:

NameVirtualHost * 

# Root domain homepage 
<VirtualHost *> 
    DocumentRoot /var/www/domain.com/html 
    ServerName domain.com 
    ServerAlias www.domain.com 
</VirtualHost> 

# Hosted sites 
<VirtualHost *> 
    VirtualDocumentRoot /var/www/vhosts/%0/html 
    ServerName * 
    ServerAlias * 
</VirtualHost> 

秒に基づいて別の場所に他のすべてとルートをキャッチしながら、最初のエントリは、私のホームページにリクエストをキャッチし、標準のサイトを提供要求されたホスト名。

1

簡単。サブフォルダのhtaccessファイルを台無しに

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^sub.domain.com$ [OR] 
RewriteCond %{HTTP_HOST} ^(www\.)?sub\.domain\.com 
RewriteRule .* /subfolder [L] 

必要がありません。ただ、サブドメインがサーバーのDNSに登録されていることを確認し、このようなhtaccessファイルでそれを指すようにします。

+0

ありがとうございます!ワイルドカードサブドメインを使用すると、サブドメインの登録をスキップできますか? – bryanb

+0

いいえ、私を信じて、私は試しました。それをDNSに登録する必要があります。あなたはそれを動作させることができますが、それは巨大なファイル許可エラーを引き起こします。私のホストは週末に閉鎖されました。私はそれを取らずにサブドメインを作る新しい方法を考案しました。サブドメインはchomped 000または何かを終了しました。大ミス。 ; D – alt

+0

実際、ブラウザをsubdomain.domain.comに保存せずにブラウザをサブフォルダ(subdomain.domain.com/vhosts/subdomain.domain.com/)に転送するだけで、サブフォルダ。また、サブドメインMODが書き直しに注意を払っているようには思われません... – bryanb

関連する問題