.htacces dans un site

janyduchemin -  
 janyduchemin -
Salut,
Je voudrais mettre en place l'url rewriting dans mon site (il tourne encore local) afin d'enlever les extensions php dans les liens. Les liens n'ont pas de variables (Ex: 127.0.0.1/monsite/inscription.php). En mettant en ligne je voudrais avoir une truc du genre: www.monsite/inscription.html par exemple
Merci!

3 réponses

  1. Kivin2003 Messages postés 682 Date d'inscription   Statut Contributeur Dernière intervention   191
     
    Hello,

    Essaie ceci :

    RewriteEngine on  
    RewriteBase /

    RewriteCond %{THE_REQUEST} (.*)\.php
    RewriteRule ^(.*)\.php $1.html [R=301,L]

    RewriteCond %{THE_REQUEST} (.*)\.html
    RewriteRule ^(.*)\.html $1.php [L]

    3
  2. janyduchemin
     
    Bsr,
    J'ai essaye le code reçu de vous, les urls changent mais une erreur s'affiche (Not Found

    The requested URL /association.html was not found on this server.)
    J'essayais de lancer la page association.php

    Que faut-il faire dans ce cas?
    Merci!
    0
    1. Kivin2003 Messages postés 682 Date d'inscription   Statut Contributeur Dernière intervention   191
       
      Hello,

      Est-ce que la page doit forcément avoir une extension ? On pourrait envisager quelque chose de plus simple et de plus SEO-friendly soit retirer le .php et donc ton site donnerait tonsite.com/association/ au lieu de tonsite.com/association.php

      Dans ce cas :

      Options +FollowSymLinks -MultiViews

      RewriteEngine On
      RewriteBase /

      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}.php -f
      RewriteRule ^(.*?)/?$ $1.php [L]


      Et si cela ne fonctionne pas, on peut tenter la boucle en externe :

      Options +FollowSymLinks -MultiViews

      RewriteEngine On
      RewriteBase /

      RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
      RewriteRule ^ %1 [R,L]
      1
  3. janyduchemin
     
    Salut,
    Merci pour vos réponses, j'ai essayer ces deux options mais seul la deuxième fonctionne (Options +FollowSymLinks -MultiViews

    RewriteEngine On
    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
    RewriteRule ^ %1 [R,L])
    les urls s'affichent sans extension cependant, le serveur ne trouve pas la page appellée (un message d'erreur 404 s'affiche)

    Not Found

    The requested URL /ndameyong/association was not found on this server.

    Je ne sais donc si c'est le fait d'être en local qui pose problème
    J'espère avoir d'autres explications merci d'avance!
    0