J'ai un petit problème avec mon .htaccess
. Par exemple, si je vais à test.example.com
, c'est dans le dossier /sub/test
. Mais cela montre test.example.com/sub/test
. Comment puis-je cacher le chemin après .com
? Ou est-il possible de le faire avec Apache, comme tous les dossiers du dossier sub
sont des sous-domaines?
Je ne sais pas comment le faire.
J'utilise ceci:
RewriteCond %{HTTP_Host} ^((?!www\.).+?)\.example\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/%1/$1 [L]
EDIT: Je veux créer automatiquement chaque dossier créé dans le dossier sub
comme un sous-domaine. Comme l'utilisateur crée un dossier et son sous-domaine.
Supprimer vos règles et juste avoir quelque chose comme:
<VirtualHost IP>
ServerName test.example.com
DocumentRoot /whatever/sub/test
(remplacez whatever
par le chemin correct et IP
par l'adresse IP/le port correspondant en fonction de la configuration de vos hôtes virtuels)
Pour un hôte virtuel dynamique, consultez le module mod_vhost_alias
http://httpd.Apache.org/docs/2.4/mod/mod_vhost_alias.html ), cité dans la documentation:
For simple name-based virtual hosts you might use the
following directives in your server configuration file:
UseCanonicalName Off
VirtualDocumentRoot "/usr/local/Apache/vhosts/%0"
A request for http://www.example.com/directory/file.html will be
satisfied by the file
/usr/local/Apache/vhosts/www.example.com/directory/file.html.
Sinon, pour vos règles de réécriture, cela peut fonctionner en ajoutant simplement [P] comme indicateur, mais en règle générale, je recommande toujours de trouver des moyens plus simples de faire les choses et d’utiliser la réécriture uniquement si les choses ne peuvent pas être faites autrement (en raison de la complexité il ajoute).