Pregunta

Tengo varios dominios que me gustaría tener subdominios comodín habilitadas a tal efecto en mod_vhost_alias

Incluido en mi httpd.conf Tengo las siguientes reglas generales:

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

El problema es que Apache está ignorando por completo las VirtualHosts con los ServerNames comodín. Cualquier solicitud de test.domain1.com o test.domain2.com simplemente mostrará el contenido de / home / user1 / public_html (la regla por defecto de acuerdo con Apache).

Algunos otros datos:

/home/user1/subdomains/test y /home/user2/subdomains/test tanto existir y tener los archivos en ellas

Todos mis dominios tienen un subdominio comodín que se indican en la configuración de vinculación y que están apuntando a la misma dirección IP especificada en las normas VHOST. VHOST reglas estándar para los subdominios de trabajo, pero no comodín.

Una versión de la salida de httpd -S cortó

# 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

Cualquier sugerencia en cuanto a lo que el problema se sería muy apreciada.

¿Fue útil?

Solución

¡Soy un novato, que era una simple solución real.

ServerName no permite comodines, pero ServerAlias hace, por lo que sólo duplica el nombre del servidor de nuevo.

Aquí está la configuración definitiva minimizada para los dominios de cualquier persona que pasa a encontrar esta respuesta (odio cuando usted busca en Google y encontrar las preguntas, pero no hay respuestas):

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

Otros consejos

David, esta solución que detiene el ciclo mod_rewrite cuando el éxito será útil para su problema).

reescritura tapón round-robin:

RewriteCond %{ENV:REDIRECT_STATUS} 200|[45]0[0-9]
RewriteRule .* - [L]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top