Riscrittura Apache basata sul sottodominio [chiuso]
-
09-06-2019 - |
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$
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