Règle basique de réécriture qui ne fonctionne pas (débutant)

Discussion dans 'URL Rewriting et .htaccess' créé par uado, 27 Novembre 2005.

  1. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Bonjour à tous,

    Je débute en réécriture d'url et j'avoue que malgré toutes mes recherches depuis plusieurs semaines, je bloque.

    Voilà mon code dans le .htaccess qui est au même niveau que mes pages web :
    Code:
    Options +FollowSymlinks
    RewriteEngine On
    RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ article.php?var1=$1&var2=$2  [L]
    C'est juste un test, pour réellement comprendre comment ça marche.

    J'ai donc créé une page article.php ou j'affiche les variables comme ceci :
    Code:
    <?PHP
    echo $_GET['var1'].' - '.$_GET['var2'];
    ?>
    
    Mes liens sont sous cette forme :
    Code:
    - <a href="article-1-1.html">Article 1.1</a><br>
    - <a href="article-1-2.html">Article 1.2</a><br>
    - <a href="article-1-3.html">Article 1.3</a><br>
    
    Je souhaiterais savoir ce qui ne va pas dans ma logique s'il vous plait. Le serveur me retourne une erreur comme quoi la page demandée (en l'occurrence article-1-2.html) n'existe pas.

    J'attends vos conseils. Merci

    uado
     
  2. Borower
    Borower WRInaute passionné
    Inscrit:
    18 Avril 2005
    Messages:
    1 671
    J'aime reçus:
    0
    Fait un test simple:
    Code:
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteRule ^article.html$ article.php  [L]
    Appelle la page article.html
     
  3. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Salut,

    Merci pour cette réponse rapide.

    J'ai essayé de faire ce que tu m'as dit, ça ne marche toujours pas. La page n'est toujours pas trouvée par le serveur. Je suis sur que ça marche sur ce serveur (serveur de la fac, et un prof m'a dit que c'était ok).

    Donc, ça ne marche même pas pour la réécriture de article.php
    De plus, ça ne marche pas en local, il doit falloir activer quelque chose de supplémentaire.

    PS : c'est normal que le fichier .htaccess ne soit pas visible avec un client ftp, ou directement en listant le dossier ?
     
  4. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Quel est ton hégergeur et le type de serveur?
    mod_rewrite est-il chargé?
    essaye avec un / devant l´url réécrite:
    RewriteEngine on
    RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ /article.php?var1=$1&var2=$2 [L]

    Oui et le on de RewriteEngine est en minuscule...
     
  5. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Bonsoir,

    J'ai fait les deux modifications (le 'on' en minuscules et le '/') mais ça ne marche toujours pas.
    Le serveur est un serveur MAC OS X, il est utilisé en majeure partie pour de l'hébergement web. Normalement, ça marche sur ce serveur, un prof me l'a certifié.
     
  6. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Dans le phpinfo() du serveur, le mod_rewrite est dans les 'Loaded Modules' de Apache, donc, c'est bien chargé.

    Que ce soit en local ou sur le serveur, on me retourne une erreur 404. Quelqu'un a une idée ?

    Je récapitule donc :

    j'ai un fchier .htaccess qui contient ce code pour l'instant :
    Code:
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^article.html$ /article.php [QSA,L]
    RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ /article.php?var1=$1&var2=$2 [QSA,L]
    
    Une page menu.php contient ces liens :
    Code:
    - <a href="article.html">Accueil des articles</a><br>
    - <a href="article-1-1.html">Article 1.1</a><br>
    - <a href="article-1-2.html">Article 1.2</a><br>
    - <a href="article-1-3.html">Article 1.3</a><br>
    
    Ma page article.php récupère les variables comme ceci :
    Code:
    <?PHP
    echo $_GET['var1'].' - '.$_GET['var2'];
    ?>
    
    Le module mod_rewrite est chargé correctement sur le serveur ainsi qu'en local.
    Cependant, erreur 404 :s

    Je ne comprends pas d'où ça vient.
     
  7. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Et la config de ton serveur est elle correcte? va-t´il chercher le .htaccess?
    Il te faut, dans le httpd.conf:

    AccessFileName .htaccess

    DocumentRoot "le rep root\www"
    <Directory />
    Options FollowSymLinks
    AllowOverride All
    </Directory>

    Est-ce que c´est bon?

    A oui, pour vérifier si le .htaccess est bien utilisé par apache, il suffit de mettre une règle fausse, ce qui provoquera une erreur 500.
     
  8. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Not Found
    The requested URL /visionair/article-1-2.html was not found on this server.
    Apache/1.3.33 Server at 127.0.0.1 Port 80

    Voilà ce que ça me retourne en local.
    Je viens de changer le document root dans le httpd.conf et ça ne marche toujours pas.
    Je ne sais pas pourquoi j'ai une erreur 404 au lieu d'une erreur 500.
     
  9. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    tttssss :)

    RewriteRule ^article.html$ /visionair/article.php [QSA,L] si tu es dans un repertoire !
     
  10. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    En fait, en local, c'est http://127.0.0.1/visionair (visionair étant l'alias dans EasyPHP).

    J'ai mis tous mes fichiers dans C:\Program Files\EasyPHP1-8\www\visionair
    le fichier .htaccess est au même niveau que mes pages, c'est à dire : http://127.0.0.1/visionair

    Sur le serveur, je suis effectivement dans un dossier : http://www.adresse-serveur.com/visionair et je n'ai la main que sur ce dossier visionair, donc, le .htaccess sera également à cette adresse : http://www.adresse-serveur.com/visionair
     
  11. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    exemplae de règle fausse:

    Redirect -123265 *1236

    Et là c´est erreur 500 à coup sûr
     
  12. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    En ajoutant : Redirect -123265 *1236 à mon .htaccess j'ai cette erreur (en local) :
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Et c'est bien une erreur 500 pourtant.
     
  13. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Donc ton .htaccess fonctionne bien.
    Peux-tu mettre la partie de ton .htaccess + l´url réelle de la page et son URL par laquelle tu veux y accéder...

    Merci
     
  14. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Essaye de faire ta règle sans ancrage ( ^...$ )

    RewriteRule article...html /article.php...
     
  15. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
  16. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    non mais c´est pas simple non plus... ;-)
    Les ancrages servent à limiter l´application de la règles.
    Maintenant, il te faut trouver le bon chemin.
    C´est vrai que logiquement s´il s´agit d´un répertoire, ce serait plutot:

    RewriteRule rep/file.html /(rep/ ou non)file.php....
     
  17. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Cela aurait été mieux de mettre ca dans un post à part... Car c´est interessant, ;-)
     
  18. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Merci pour tous ces liens, je connaissais déjà la majorité d'entre eux.

    En ce qui concerne ma demande pour afficher le titre dans l'url, est ce que quelqu'un peux m'aiguiller ?
    Je ne sais pas si il faut créer une requete SQL avant, qui va chercher le titre dans la base de données ou si il faut le mettre en dur dans le htaccess ... etc

    Pouvez-vous m'expliquer la démarche à suivre s'il vous plait ?
     
  19. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Ben oui le mieux est de récupérer le titre dans ta base, et de créer donc tes liens sous la forme:
    titre...-tes var.html
    puis dans la règle de rewrite, tu rajoutes un truc du genre [^-]+-... qui correspond au titre de ta page. et qui ne sert évidemment à rien à part au référencement...
     
  20. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Donc, si j'ai bien compris, il faut que je modifie à la main le .htaccess ?
    Il n'y a pas moyen de le faire dynamiquement ? (peut-être avec fopen() en php ?)
     
  21. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    uado: J´abandonne ...:-(
     
  22. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Je suis si désepérant que ça :lol:

    bon, je vais me débrouiller avec ce que j'ai compris alors ;)

    Merci en tout cas d'avoir résolu mon problème initial
     
  23. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    tu génères dynamiquement tes liens:
    /titredetonlien-variable-variables.html

    et dans ton htacces tu fais ça:

    RewrireRule ^rep/[^-]+-([^-]+)-([^-]+)\.html$ /rep/file.php?var1=$1&var2=$2

    ou un truc dans le genre.. C´est compréhensible ?????????
     
  24. uado
    uado Nouveau WRInaute
    Inscrit:
    27 Novembre 2005
    Messages:
    41
    J'aime reçus:
    0
    Ok, merci, mais je découvre vraiment l'url rewriting, alors j'ai pas encore toute la logique. Mais ça va aller avec tout ça, merci correiaj
     
Chargement...
Similar Threads - Règle basique réécriture Forum Date
Conformité avec les règles de Google relatives au consentement de l'utilisateur dans l'UE AdSense 5 Octobre 2021
Cookies : les nouvelles règles de 2021 : vos questions Administration d'un site Web 10 Mars 2021
site dans les règle VS site pas dans les règle Débuter en référencement 27 Juin 2020
Annonces refusées car présente des cas de non-respect des règles AdSense 13 Mars 2020
Search Console regles avec ou sans www Crawl et indexation Google, sitemaps 2 Octobre 2019
Quid des règles de bonnes pratiques SEO pour l'administration d'un forum Référencement Google 10 Août 2019
Cas de non respect des règles AdSense : demander un examen sans modifications ? AdSense 8 Août 2019
Réglement Adsense et coupure des annonces AdSense 24 Juillet 2019
Modification des règles d'affichage des bannières AdSense AdSense 2 Juillet 2019
netlinking : 20 règles à connaître sur les liens Netlinking, backlinks, liens et redirections 2 Juillet 2019
Problème règles affiliation Amazon Monétisation d'un site web 21 Mai 2019
Modifications des règles de contenu enrichi Référencement Google 13 Mai 2019
Règle de redirection sur une URL WP URL Rewriting et .htaccess 25 Avril 2019
Règle SEO des 1000 mots : site de tuto Débuter en référencement 6 Mars 2019
Règlement européen sur la protection des données (RGPD) Droit du web (juridique, fiscalité...) 20 Avril 2018
Nouvelles règles de monétisation des chaînes YouTube AdSense 17 Janvier 2018
Règles de l'ICANN : obligation d'hébergement dans le pays Noms de domaine et référencement 26 Novembre 2017
Les règles de prix catalogue ne fonctionnent pas Développement d'un site Web ou d'une appli mobile 26 Juin 2017
Comment régler le problème des Soft 404 Débuter en référencement 21 Avril 2017
Règle de redirection particulière Netlinking, backlinks, liens et redirections 23 Janvier 2017