Frage

Ich habe mehrere Domains, die Ich mag würde Wildcard Sub-Domains für über mod_vhost_alias aktiviert sein

Im meine httpd.conf Ich habe folgende verallgemeinerte Regeln:

<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>

Das Problem ist, dass Apache vollständig die Virtual mit den Wildcard-Servernamen ignoriert. Jeder Antrag auf test.domain1.com oder test.domain2.com zeigt nur den Inhalt von / home / user1 / public_html (die Standardregel nach Apache).

Einige andere Informationen:

/home/user1/subdomains/test und /home/user2/subdomains/test beide existieren und Dateien in ihnen

Alle meine Domains haben eine Wildcard Sub-Domain in bind Config aufgeführt sind, und sie weisen auf die gleiche IP in den Vhost Regeln festgelegt. Standard Vhost Regeln für Subdomains Arbeit, aber nicht Wildcard.

Ein snipped Version der Ausgabe von httpd -S

# 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

Irgendwelche Vorschläge, was das Problem sehr geschätzt wird würde.

War es hilfreich?

Lösung

Ich bin so ein noob, es war eine echte einfache Lösung.

ServerName keine Platzhalter erlauben, aber ServerAlias tut, so dass ich dupliziert nur die Servernamen wieder.

Hier ist die letzte minimiert Config für Domains jeder, der diese Antwort finden passiert (ich hasse es, wenn Sie auf Google suchen und Fragen finden, aber keine Antworten):

<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>

Andere Tipps

David, diese Lösung, die mod_rewrite Zyklus stoppt, wenn Erfolg für Ihr Problem nützlich sein wird).

Rewrite Round-Robin-Stopper:

RewriteCond %{ENV:REDIRECT_STATUS} 200|[45]0[0-9]
RewriteRule .* - [L]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top