Pregunta

Estoy tratando de redirigir las solicitudes de un dominio comodín para un sub-directorio.
es decir. something.blah.domain.com --> blah.domain.com/something

No sé cómo obtener el nombre de subdominio para el uso de la regla de reescritura.

Solución Final:

RewriteCond %{HTTP_HOST} !^blah\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteRule ^(.*) /%1/$1 [L]

O como señaló pilif

RewriteCond %{HTTP_HOST} ^([^.]+)\.media\.xnet\.tk$
¿Fue útil?

Solución

Usted debe tener una mirada en el Guía de Reescritura de URL a partir de la documentación de apache.

El siguiente es el análisis predictivo, pero se debe a que el truco:

RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$           http://blah.domain.com/%1/$1 [L,R] 

Esto sólo funciona si el subdominio no contiene puntos.De lo contrario, tendrías que modificar la Regexp en RewriteCond para que coincida con cualquier carácter que todavía debe trabajar debido a las maniobras de fondeo, pero este sin duda se siente más seguro.

Otros consejos

Intente esto:

RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]

@pilif (ver el comentario):Bueno, eso es cierto.He copiado una .htaccess que tengo en uno de mis proyectos.Supongo que tiene un enfoque ligeramente diferente :)

@Sam

su RewriteCond línea está mal.La expansión de la variable se activa con el %, no $.

RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
            ^

que debe hacer el truco

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top