IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Racine vs sous-répertoire avec .htaccess


Sujet :

Apache

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Racine vs sous-répertoire avec .htaccess
    Bonjour. Présentement, je fais une redirection via la balise Meta refresh pour partir de la racine vers un sous-répertoire. Mais, je dois pouvoir faire croire aux script du sous-répertoire qui se trouve à la racine
    tout en étant dans le sous-répertoire.

    Je ne sais pas comment expliquer plus pour exprimer ce dont je veux.

    Je cherche une solution avec .htaccess et je pense aux engins de recherche pour les mots clé et
    description pour ce problème.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Faire croire comment ? Tu ne chercherais pas à faire de la réécriture d'URL par hasard ?

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Ma page principale se trouve dans un sous-répertoire qui s'appelle /social/ mais quand quelqu'un entre dans le site, je voudrais que pour la personne, la page se trouve dans / en apparence. Mais en réalité, elle se trouve dans /social/

    C'est surement une réécriture de url mais je ne sais pas comment la faire puisque je n'ai pas idée comment la réaliser.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Eh bien, tu peux commencer par un tutoriel.

  5. #5
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Bonjour _MAC_ et merci. Je suis allé voir ce tutoriel et j'ai retenu ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine on
    RewriteRule /([0-9]+).* /etre/$1 [L]
    Cela m'avait semblé correcte mais je ne pense pas puisque ça ne me donne pas le résultat.

    Un client qui entre sur domaine.ltd, je souhaiterai qu'en réalité soit entré sur domaine.ltd/subdir/ mais dans son navigateur ça soit toujours domaine.ltd qu'il voit. Peut-être que ce n'est pas possible.

    Les engins de recherches index le contenu de la page par critère donc le contenu. J'ai pas de contenu dans le root mais je veux que le root simule un contenu qui se trouve dans le sous-répertoire. Si je tappe domaine.ltd, l'engin de recherche pourrait voir mon contenu domaine.ltd/subdir/*.* en laissant croire que le tout se trouve dans domaine.ltd/

    Mon contenu se trouve dans un sous-répertoire pour mieux classer mes contenus.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Plusieurs choses :
    1. Sur le principe, la règle est correcte
    2. Il faut savoir (mais c'est tout sauf intuitif et évident) que dans un .htaccess, Apache va tester l'URL par rapport au premier paramètre des RewriteRule sans le premier /. Ainsi, sur une URL http://monsite.com/toto/titi, Apache testera finalement toto/titi et non pas /toto/titi. Donc par rapport à ce que tu as écrit, si le ([0-9]+).* représente ce qui suit le premier /, il faut enlever le / devant :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      RewriteRule ([0-9]+).* /etre/$1 [L]
    3. Par rapport au masque ([0-9]+).*, seules les URL qui ne contiennent que des chiffres matcheront ce masque, et donc seules ces URL seront réécrites vers le sous-répertoire /etre. Je ne sais pas si c'est ce que tu veux faire. Si c'est trop restrictif, il faudra adapter la règle.
    4. Il y a un fort risque (mais ce n'est pas certain) que ta règle parte en boucle infinie. Le symptôme : une erreur 500. Si c'est le cas, il faudra ajouter des conditions (juste avant la RewriteRule) pour dire à Apache de ne pas appliquer la règle dans certains cas :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      RewriteCond %{REQUEST_URI} !-f
      RewriteCond %{REQUEST_URI} !-d

  7. #7
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci, ça fonctionne comme je veux.

    J'ai mis par contre comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule (.*).* /etre/$1 [L]
    Cependant, si j'ai un autre répertoire en racine, je ne peux y avoir accès.

    Genre:

    Faudrait bien y avoir accès.

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Logiquement si, avec les 2 RewriteCond ... !-f/-d que j'ai données. Sinon, faut ajouter une condition pour retirer le répertoire /support de la réécriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{REQUEST_URI} !^/support

  9. #9
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci _MAC_, je croyais pouvoir utiliser ou faire cette manœuvre mais je ne pourrais pas vu que j'utilise un CMS et ça entre en conflit avec. Au moins, j'ai essayé. Je marque résolu.

    PS, il devrait y avoir avec le bouton "Envoyer la réponse" une case à cocher pour indiquer résolu en même temps et pourquoi pas une case pour indiquer "Abandonné". C'est une suggestion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 14/05/2020, 22h11
  2. Interdire plusieurs répertoires avec .htaccess
    Par matpush dans le forum Apache
    Réponses: 6
    Dernier message: 25/10/2010, 15h21
  3. Protéger un répertoire avec .htaccess
    Par Gizmil dans le forum Autres langages pour le Web
    Réponses: 7
    Dernier message: 18/09/2007, 14h56
  4. Problème protection répertoire avec .htaccess
    Par Silvia12 dans le forum Apache
    Réponses: 1
    Dernier message: 13/05/2006, 14h40
  5. Protection d'un répertoire avec .htaccess
    Par Bweb dans le forum Apache
    Réponses: 2
    Dernier message: 04/05/2004, 19h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo