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 :

[URL rewriting] Réécrire search.php?search=valeur en /search/valeur


Sujet :

Apache

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 81
    Points : 56
    Points
    56
    Par défaut [URL rewriting] Réécrire search.php?search=valeur en /search/valeur
    Bonjour à tous,

    J'ai besoin de changer les liens de mon site avec URL Rewriting.

    Mon site est composé de 2 pages (index et une page search.php sur laquelle je voudrais modifier les URL)

    Je voudrais que lorsque l'on tape dans le navigateur

    http://www.monadresse.com/monsite/search/marequete

    on arrive sur :

    http://www.monadresse.com/monsite/search.php?search="marequete"

    Il se trouve dans un sous dossier "monsite" soit dans www/monsite/

    Je suis chez OVH et j'ai modifié le .htaccess à la racine ou se trouve le répertoire /www de cette manière en suivant cette procédure

    Voici mon .htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RewriteEngine On
    RewriteBase /monsite/
    RewriteRule ^search/(.+) search.php?search=$1 [L]
     
    SetEnv REGISTER_GLOBALS 0
    SetEnv ZEND_OPTIMIZER 1
    SetEnv MAGIC_QUOTES 1
    SetEnv PHP_VER 5


    Ce code ne fonctionne pas, aussi j'ai 2 questions :

    La première : il y a uniquement la page index qui à un lien vers la page search.php a travers un formulaire de type GET, donc je voudrais savoir comment modifier le lien généré par l'envoi de ce formulaire ?

    La deuxième de savoir pourquoi lorsque je tape "http://www.monadresse.com/monsite/search/marequete" je tombe sur ma page search.php avec les textes html mais sans aucune image (le chemin des images "images/monimage.jpg" n'est pas bon) et la variable GET n'est pas non plus initialisé (car je l'affiche dans le formulaire de recherche normalement).

    Merci

  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
    Citation Envoyé par vgross Voir le message
    La première : il y a uniquement la page index qui à un lien vers la page search.php a travers un formulaire de type GET, donc je voudrais savoir comment modifier le lien généré par l'envoi de ce formulaire ?
    IL faut faire du JavaScript pour construire l'URL comme tu veux car en GET, tu auras toujours des paramètres d'URL ?nom=valeur.

    Citation Envoyé par vgross Voir le message
    La deuxième de savoir pourquoi lorsque je tape "http://www.monadresse.com/monsite/search/marequete" je tombe sur ma page search.php avec les textes html mais sans aucune image (le chemin des images "images/monimage.jpg" n'est pas bon) et la variable GET n'est pas non plus initialisé (car je l'affiche dans le formulaire de recherche normalement).
    2 problèmes en 1 :
    1. Ajoute la ligne suivante tout en haut de ton .htaccess
    2. Il faut mettre des URL relatives à la racine du site (i.e. des URL qui commencent par / : src="/images/...") dans ton code HTML car avec tes URL relatives "images/...", le navigateur construit des URL absolues http://www.monadresse.com/monsite/search/images/... car comme tu mets des /, il crois que c'est un répertoire.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    Merci de ta réponse !

    Alors pour les images c'est ok ! en revanche, pour la variable GET malheureusement non :-( c'est à dire que ma variable GET est en fait la requête tapé par l'utilisateur dans la page index (ou même la page search d'ailleurs) et je l'affiche dans un div caché et dans la barre de recherche mais les 2 sont vide. C'est à dire que lorsque je tape www.monadresse.com/monsite/search/marequete, je voudrais que ma variable GET['search'] soit initialisé avec ma requête...

    Le problème vient peut être du fait que lorsque je rajoute ton option "Options -MultiViews", la page n'est plus accessible, je n'ai donc pas pu la rajouter...

    elle sert à quoi au juste cette option ?

    Dernière chose pour mon formulaire GET tu me dis de passer par du Javascript... tu peux préciser un peu ? me donner des pistes ?

    Merci en tout cas !

  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
    Citation Envoyé par vgross Voir le message
    elle sert à quoi au juste cette option ?
    Un petit tour sur la doc Apache ? Elle sert à désactiver la négociation de contenu qui fait en sorte qu'Apache servira la page search.php par exemple si tu demandes juste /monsite/search sans l'extension .php. Ce truc pose souvent des problèmes avec l'URL rewriting.

    Citation Envoyé par vgross Voir le message
    Dernière chose pour mon formulaire GET tu me dis de passer par du Javascript... tu peux préciser un peu ? me donner des pistes ?
    Ben je répète : avec un formulaire en GET, tu auras toujours des paramètres d'URL /monsite/search?search=marequete. Tu le vois bien : c'est le fonctionnement actuel. Si tu veux que ça affiche juste /monsite/search/marequete dans la barre d'adresse, tu es obligé de passer par du JavaScript pour construire cette URL sans paramètre d'URL. Pas le choix. Je ne sais pas comment l'expliquer autrement.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    Merci de ta réponse !


    Je vais regarder tout ça plus tard car ce n'est pas la priorité du projet pour le moment !

    Je mettrais la solution en réponse quand je l'aurais trouvée ! :-)

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/04/2013, 23h11
  2. Réponses: 4
    Dernier message: 18/04/2013, 14h54
  3. Réponses: 1
    Dernier message: 18/07/2010, 23h24
  4. Réponses: 5
    Dernier message: 26/02/2010, 23h37
  5. Réponses: 3
    Dernier message: 08/03/2009, 10h58

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