Est-il possible d'utiliser le fichier .htaccess pour réécrire un sous-domaine en un répertoire ?
Exemple :
montre le contenu de
Est-il possible d'utiliser le fichier .htaccess pour réécrire un sous-domaine en un répertoire ?
Exemple :
montre le contenu de
Essayez de mettre ceci dans votre fichier .htaccess :
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ /subdomains/sub/$1 [L,NC,QSA]
Pour une règle plus générale (qui fonctionne avec n'importe quel sous-domaine, et pas seulement avec sub
) remplacez les deux dernières lignes par ceci :
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ subdomains/%1/$1 [L,NC,QSA]
Je ne suis pas un expert en mod_rewrite et j'ai souvent du mal avec lui, mais j'ai fait cela sur un de mes sites. Il se peut que vous ayez besoin d'autres drapeaux, etc., en fonction de votre situation. J'utilise ceci :
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L]
Toute autre règle de réécriture pour le reste du site doit être placée après pour éviter qu'elle n'interfère avec les réécritures de votre sous-domaine.
Vous pouvez utiliser la règle suivante dans .htaccess pour réécrire un sous-domaine en un sous-dossier :
RewriteEngine On
# If the host is "sub.domain.com"
RewriteCond %{HTTP_HOST} ^sub.domain.com$ [NC]
# Then rewrite any request to /folder
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
Explication ligne par ligne :
RewriteEngine on
La ligne ci-dessus indique au serveur d'activer le moteur de réécriture des URL.
RewriteCond %{HTTP_HOST} ^sub.domain.com$ [NC]
Cette ligne est une condition pour la RewriteRule où nous faisons correspondre l'hôte HTTP en utilisant un motif regex. La condition dit que si l'hôte est sous.domaine.com puis exécuter la règle.
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
La règle correspond à http://sub.domain.com/foo et le redirige en interne vers http://sub.domain.com/folder/foo .
Remplacer sous.domaine.com avec votre sous-domaine et folder avec le nom du dossier vers lequel vous voulez faire pointer votre sous-domaine.
J'ai eu le même problème, et j'ai trouvé une explication détaillée dans http://www.webmasterworld.com/apache/3163397.htm
Ma solution (le contenu des sous-domaines doit se trouver dans un dossier appelé sd_subdomain
:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} subdomain\.domain\.com
RewriteCond $1 !^sd_
RewriteRule (.*) /sd_subdomain/$1 [L]
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.