Domanda

Sto cercando di reindirizzare le richieste per un dominio con caratteri jolly a una sottodirectory.
cioè. something.blah.domain.com --> blah.domain.com/something

Non so come ottenere il nome del sottodominio da utilizzare nella regola di riscrittura.

Soluzione finale:

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

O come sottolineato da Pilif

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

Soluzione

Dovresti dare un'occhiata a Guida alla riscrittura degli URL dalla documentazione di Apache.

Quanto segue non è stato testato, ma dovrebbe funzionare:

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

Funziona solo se il sottodominio non contiene punti.Altrimenti, dovresti modificare Regexp in RewriteCond per corrispondere a qualsiasi carattere che dovrebbe ancora funzionare a causa dell'ancoraggio, ma questo sicuramente sembra più sicuro.

Altri suggerimenti

Prova questo:

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

@pilif (vedi commento):Ok, è vero.Ho appena copiato un file .htaccess che utilizzo in uno dei miei progetti.Immagino che abbia un approccio leggermente diverso :)

@Sam

la tua riga RewriteCond è sbagliata.L'espansione della variabile viene attivata con %, non $.

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

dovrebbe bastare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top