sparh Posté 14 Novembre 2013 Posté 14 Novembre 2013 Bonjour, donc j'ai mon domaine principal : domaine.com, sur mon serveur il se trouve dans le répertoire /www/. J'ai crée un sous domaine : s.domaine.com qui sur mon serveur se trouve dans le dossier /www/s J'ai mis un fichier .htaccess à la racine de mon sous-domaine à savoir /www/s/.htaccess Cette règle fonctionne très bien : RewriteRule Admin/Clients/$ Admin/Utilisateurs/index.php?type=client [L] Par contre celle-ci ne marche pas : RewriteRule Admin/Clients/detail.php?id=([0-9]+)$ Admin/Utilisateurs/detail.php?id=$1&type=client [L] J'ai aussi essayé sans succès : RewriteRule Admin/Clients/detail.php?id=([0-9]+)$ s/Admin/Utilisateurs/detail.php?id=$1&type=client [L] RewriteRule Admin/Clients/detail.php?id=([0-9]+)$ /s/Admin/Utilisateurs/detail.php?id=$1&type=client [L] RewriteRule Admin/Clients/detail.php?id=([0-9]+)$ /Admin/Utilisateurs/detail.php?id=$1&type=client [L] Auriez-vous une idée ? Merci d'avance
Ernestine Posté 14 Novembre 2013 Posté 14 Novembre 2013 Si tu as des paramètres à gauche, il faut utiliser QUERY_STRING : RewriteCond %{QUERY_STRING} id=([0-9]+) RewriteRule index.php$ index.php?id=%1&type=client [L]
Ciseur Posté 15 Novembre 2013 Posté 15 Novembre 2013 Hello, J'en profite pour t'alerter sur la structure de répertoire sur ton serveur. Fait bien attention à ce que les contenus de ton sous domaines ne soit pas accessible également sur ton domaine principal. Concrètement, j'ai peur que ces deux URL donne la même réponse : http://www.domaine.com/s/exemple.html http://s.domaine.com/exemple.html En espérant t'aider, Ciseur
sparh Posté 16 Novembre 2013 Auteur Posté 16 Novembre 2013 Re, et merci mais ça j'y ai pensé. Je le test en php dans le header de chaque page. Y'a t'il un moyen de le faire via htaccess ?
Dan Posté 16 Novembre 2013 Posté 16 Novembre 2013 Dans un .htaccess à la racine du sous-domaine s.domaine.com : RewriteCond %{HTTP_HOST} !s\.domaine\.com RewriteRule /?s/(.*) http://s.domaine.com/$1 [QSA,L]
Ciseur Posté 18 Novembre 2013 Posté 18 Novembre 2013 Bien noter que ce système t'empêche d'avoir des URL du type nomdedomaine.tld/s/* sur ton domaine principal Ce qui ne te posera pas forcément de souci mais je préfère préciser au cas où cette réponse est utile à d'autres.
Dan Posté 18 Novembre 2013 Posté 18 Novembre 2013 Comme /s/ est le répertoire du sous-domaine, cela ne devrait pas poser de problème et aucune URL sous la forme nomdedomaine.tld/s/* ne sera logiquement utilisée.
sparh Posté 18 Novembre 2013 Auteur Posté 18 Novembre 2013 Tout à fait (le répertoire /s/ n'est jamais appelé depuis un répertoire parent). Merci de l'avoir précisé quand même.
sparh Posté 9 Janvier 2014 Auteur Posté 9 Janvier 2014 (modifié) Bonjour, désolé je revient sur le sujet mais je n'arrive pas à faire fonctionner le code de Dan plus haut (on ne peux pas accéder à domaine.com/s mais c'est ma sécurité en php et non le fichier htaccess qui bloque l'accès) Je souhaite qu'on ne puisse pas accéder aux sous-domaines via leurs nom de dossier. Ex : s.mon-domiane.com ne doit pas être accessible depuis mon-domaine.com/s J'ai donc mis : RewriteCond %{HTTP_HOST} !s\.mon-domaine\.com RewriteRule /?s/(.*) http://s.mon-domaine/$1 [QSA,L] dans le fichier htaccess à la racine de mon dossier /s/ J'ai tenté différentes choses mais à part crée des erreurs 500 rien à faire. Merci d'avance Modifié 9 Janvier 2014 par sparh
SStephane Posté 10 Janvier 2014 Posté 10 Janvier 2014 RewriteCond %{HTTP_HOST} !s\.mon-domaine\.com RewriteRule /?s/(.*) http://s.mon-domaine/$1 [QSA,L,R=301] Tout simplement non ?
sparh Posté 10 Janvier 2014 Auteur Posté 10 Janvier 2014 Bonjour et merci d'avoir regardé mais non je l'ai essayé aussi et ça ne change rien
Dan Posté 10 Janvier 2014 Posté 10 Janvier 2014 Peut-être que tu hérites des règles du niveau supérieur, qui interfèrent avec celle-ci. Fais-moi connaître le nom de ce domaine/sous-domaine par MP, que je regarde ça. Ça devrait fonctionner !
Dan Posté 10 Janvier 2014 Posté 10 Janvier 2014 La règle suivante fonctionne : RewriteCond %{HTTP_HOST} !s\.domaine\.ch RewriteRule (.*) http://s.domaine.ch/$1 [QSA,L] C'est /s/ qui n'est pas transmis lors de la réécriture.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant