質問

私はmod_vhost_aliasを通じてのために有効にワイルドカードサブドメインを持ちたい複数のドメインを持っている。

私は、次の一般的なルールを持って、私のhttpd.confに含まれます:

<VirtualHost [ip here]:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    DocumentRoot /home/user1/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
    ServerName *.domain1.com
    VirtualDocumentRoot /home/user1/subdomains/%-3+
</VirtualHost> 

<VirtualHost [ip here]:80>
    ServerName domain2.com
    ServerAlias www.domain2.com
    DocumentRoot /home/user2/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
    ServerName *.domain2.com
    VirtualDocumentRoot /home/user2/subdomains/%-3+
</VirtualHost>

問題は、Apacheが完全にワイルドカードServerNamesと仮想ホストを無視していることです。 test.domain1.comまたはtest.domain2.comのためのすべての要求はただの/ home / user1の/ public_htmlの(apacheのに応じて、デフォルトのルール)の内容を表示します。

いくつかの他の情報:

/home/user1/subdomains/test/home/user2/subdomains/testの両方に存在し、それらのファイルを持っている。

すべての私のドメインは、バインドの設定に記載されているワイルドカードサブドメインを持っている、と彼らはバーチャルホストのルールで指定されたものと同じIPを指しています。標準的なバーチャルホストのサブドメインの仕事のためのルールではなく、ワイルドカードます。

httpd -Sの出力のA切り取らバージョン

# httpd -S
VirtualHost configuration:
[ip here]:80      is a NameVirtualHost
         default server domain1.com (/etc/httpd/sites/user1:1)
         port 80 namevhost domain1.com (/etc/httpd/sites/user1:1)
         port 80 namevhost *.domain1.com (/etc/httpd/sites/user1:14)
         port 80 namevhost domain2.com (/etc/httpd/sites/user2:1)
         port 80 namevhost *.domain2.com (/etc/httpd/sites/user2:14)
Syntax OK
# httpd -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 rewrite_module (shared)
 auth_basic_module (shared)
 authz_host_module (shared)
 include_module (shared)
 log_config_module (shared)
 logio_module (shared)
 mime_magic_module (shared)
 mime_module (shared)
 vhost_alias_module (shared)
 dir_module (shared)
 suexec_module (shared)
 php5_module (shared)
 suphp_module (shared)
 ssl_module (shared)
Syntax OK

問題が何であるかについての任意の提案をいただければ幸いです。

役に立ちましたか?

解決

私は、このようなnoobのだけど、それは本当の簡単な解決策だった。

ServerNameは、ワイルドカードを許すが、ServerAliasんので、私は再びサーバー名を重複しません。

ここでは(あなたがGoogleで検索し、質問が、ノーの答えを見つけたとき、私はそれを嫌う)この答えを見つけるために起こるドメインの誰のための最終的な最小限configがあります

<VirtualHost [ip here]:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    DocumentRoot /home/user1/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
    ServerName domain1.com #<-- The fix. Wildcards not supported in ServerName
    ServerAlias *.domain1.com
    VirtualDocumentRoot /home/user1/subdomains/%-3+
</VirtualHost>

他のヒント

デビッド、成功はあなたの問題のために有用であろう時にmod_rewriteのサイクルを停止し、この溶液)。

書き換えラウンドロビンストッパーます:

RewriteCond %{ENV:REDIRECT_STATUS} 200|[45]0[0-9]
RewriteRule .* - [L]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top