Supprimer *.php des URLs

Vous avez un soucis de développement et ce n'est pas du ressort de notre support ? N'hésitez pas à soumettre vos petits soucis de développement et à vous entre aider par la même occasion.
Répondre
Nside
Messages : 82
Inscription : 24 septembre 2011 à 00:05

Bonjour,

Je possède un site, qui tient la route depuis 2-3 semaines, maintenant puis pour plus de stabilité j'aimerais supprimer les *.php, des URLs, même si ça sert réellement pas à grande chose sa sera toujours plus beaucoup à regarder.

Merci,
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

Bonsoir,

L'enjolivement des adresses se fait à l'aide de la réécriture d'URL (ou URL Rewriting).

Elle permet à la fois de simplifier les adresses, d'améliorer son référencement et également d'éviter quelques hack par injection dans l'URL.

Jetez voir un coup d’œil à cette documentation :
https://www.franceserv.fr/wiki/url_rewriting
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Avatar de l’utilisateur
Tilde3
Messages : 461
Inscription : 19 octobre 2011 à 13:11
Contact :

J'ai une bonne et une mauvaise nouvelle :

[h]La bonne nouvelle.[/h]
Ne pas avoir l'extension .php m'intéresse aussi. J'ai donc [s]fait[/s] trouvé ça :

Code : Tout sélectionner

# RAJOUTER .PHP SI AUCUNE EXTENSION
    <IfModule mod_rewrite.c>
        Options +FollowSymLinks
        Options +Indexes
        RewriteEngine On
        RewriteCond %{SCRIPT_FILENAME} !-d
        RewriteRule ^([^\.]+)$ $1.php [NC,L]
    </IfModule>
Ça fonctionne : lorsque je tape `www.mondomaine.com/index', je vois ma page index.php apparaître, sans extension de fichier.

[h]La mauvaise nouvelle[/h]
Je pensais que cette règle allait supprimer l'extension .php. En effet, tous les liens internes de mon site sont déjà écrits avec leur extension. Ex:

Code : Tout sélectionner

<a href="/mapage.php">ma page</a>
Dois-je recoder chaque lien sans l'extension ? J'imagine que l'url-rewriting pourrait s'en charger. Néanmoins, n'est-ce pas intéressant de le faire (alléger le code source, rendre les liens plus lisibles dans le code, sur le ftp…) ?
Electronic100
Messages : 174
Inscription : 13 avril 2012 à 20:53

Bonjour,

Pour ne plus avoir les extensions de fichiers, j'utilise une astuce toute simple qui est basé sur le fait que la page nommée "index" ( .html ou .php ) est chargée en premier ( si aucune page n'a été précisée ), je créer donc des dossiers qui porte le nom des pages de mon site. Et donc dans ces dossiers je met ma page mais celle-ci doit être nommée "index" ( .html ou .php )

Ainsi l'URL de ma page nommée "page1.php" n'est plus : "http://www.monsite.fr/page1.php"

mais : "http://www.monsite.fr/page1/"

cela donne :

(avant)

[dossier parent] www.monsite.fr
|- page1.php

(après)

[dossier parent] www.monsite.fr
\t |- page1
\t |- index.php [cette est la même que "page1.php"]
\t\t\t\t
@+
Avatar de l’utilisateur
Tilde3
Messages : 461
Inscription : 19 octobre 2011 à 13:11
Contact :

@electronic100 :
Oui… mais non :D
Vous imaginez les limites de cette technique, surtout avec un gros site.
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

tilde3 a écrit :Je pensais que cette règle allait supprimer l'extension .php. En effet, tous les liens internes de mon site sont déjà écrits avec leur extension. Ex:

Code : Tout sélectionner

<a href="/mapage.php">ma page</a>
Dois-je recoder chaque lien sans l'extension ?
Oui, et même les liens sur vos affiches papiers, cartes de visite etc, sinon ça ne servirai à rien de faire de la réécriture si on indique toujours l'ancienne adresse longue ;)
tilde3 a écrit :J'imagine que l'url-rewriting pourrait s'en charger.
Non, ou alors il faut écrire une double réécriture, il ne faut pas confondre la réécriture d'URL pour une autre URL et la réécriture d'URL pour un fichier sur l'espace FTP :

1) L'internaute se rend à l'adresse "/inscription.htm" mais le .htaccess le redirige sur l'adresse "/order"

Code : Tout sélectionner

Redirect permanent /inscription.htm /order
2) Une fois que l'internaute est maintenant présent sur "/order", c'est le fichier "/index.php?page=order" qui est appelé :

Code : Tout sélectionner

RewriteRule ^([0-9a-z-]+)/?$ /?page=$1 [L]
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7938
Inscription : 2 avril 2010 à 20:14

Et j'ajoute que si la réécriture d'URL est correcte, c'est que les anciennes adresses pleinement nommées ne peuvent plus fonctionner.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

tilde3 a écrit :J'ai une bonne et une mauvaise nouvelle :

[h]La bonne nouvelle.[/h]
Ne pas avoir l'extension .php m'intéresse aussi. J'ai donc [s]fait[/s] trouvé ça :

Code : Tout sélectionner

# RAJOUTER .PHP SI AUCUNE EXTENSION
    <IfModule mod_rewrite.c>
        Options +FollowSymLinks
        Options +Indexes
        RewriteEngine On
        RewriteCond %{SCRIPT_FILENAME} !-d
        RewriteRule ^([^\.]+)$ $1.php [NC,L]
    </IfModule>
Ça fonctionne : lorsque je tape `www.mondomaine.com/index', je vois ma page index.php apparaître, sans extension de fichier.

[h]La mauvaise nouvelle[/h]
Je pensais que cette règle allait supprimer l'extension .php. En effet, tous les liens internes de mon site sont déjà écrits avec leur extension. Ex:

Code : Tout sélectionner

<a href="/mapage.php">ma page</a>
Dois-je recoder chaque lien sans l'extension ? J'imagine que l'url-rewriting pourrait s'en charger. Néanmoins, n'est-ce pas intéressant de le faire (alléger le code source, rendre les liens plus lisibles dans le code, sur le ftp…) ?
Salut
moi aussi j'utilise cette condition pour reecrire mes pages, et j'ai été obligé de supprimer l'extension pour l'appel des pages.
Le fichier htaccess ne faisant que donner l'indication page1 = page1.php
Une astuce avec notepad++ :
Tu ouvres ta page, click recherche --> remplacer --> dans le champ "recherche" mettre .php et laisser vide le champ "remplacer par" clicker sur "remplacer tout"
Avatar de l’utilisateur
Tilde3
Messages : 461
Inscription : 19 octobre 2011 à 13:11
Contact :

Bien vu webexperience ! Et merci à Élodie pour la réponse. Je vais m'atteler à tout ça :)
C'est là que je comprends qu'avant de développer son site web, il est bon de réfléchir à sa structure, à ses possibilités d'évolution…
Nside
Messages : 82
Inscription : 24 septembre 2011 à 00:05

Merci, à tous pour tous vos message je vais tenter le code tilde3 :D
Répondre