Réécriture d'Apache basée sur le sous-domaine [fermé]
-
09-06-2019 - |
Question
J'essaie de rediriger les demandes d'un domaine générique vers un sous-répertoire.
c'est à dire. something.blah.domain.com
--> blah.domain.com/something
Je ne sais pas comment utiliser le nom de sous-domaine dans la règle de réécriture.
Solution finale:
RewriteCond %{HTTP_HOST} !^blah\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteRule ^(.*) /%1/$1 [L]
Ou comme l'a souligné pilif
RewriteCond %{HTTP_HOST} ^([^.]+)\.media\.xnet\.tk$
La solution
Tu devrais jeter un oeil à Guide de réécriture d'URL à partir de la documentation Apache.
Ce qui suit n'a pas été testé, mais cela devrait suffire :
RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$ http://blah.domain.com/%1/$1 [L,R]
Cela ne fonctionne que si le sous-domaine ne contient aucun point.Sinon, vous devrez modifier l'expression rationnelle dans RewriteCond pour qu'elle corresponde à n'importe quel caractère qui devrait toujours fonctionner en raison de l'ancrage, mais cela semble certainement plus sûr.
Autres conseils
Essaye ça:
RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]
@pilif (voir commentaire) :D'accord, c'est vrai.Je viens de copier un .htaccess que j'utilise sur un de mes projets.Je suppose qu'il a une approche légèrement différente :)
@Sam
votre ligne RewriteCond est fausse.L'expansion de la variable est déclenchée avec %, et non avec $.
RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
^
Cela devrait faire l'affaire