Supprimer l'extension .php et rendre accessible .php ?

Discussion dans 'URL Rewriting et .htaccess' créé par cyclone200, 16 Juillet 2013.

  1. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    Bonjour à tous,

    J'utilise un .htaccess afin de pouvoir rendre accessible mes pages sans l'extension .php. Par exemple :

    la page file.php est accessible avec :
    http://www.domain.com/file et http://www.domain.com/file.php.
    Ce qui me convient.

    Toutefois, au niveau du référencent, j'ai entendu quelque part que ce n'était pas bien de rendre les pages accessibles de deux manières différentes et qu'il était préférable de supprimer soit l'une manière, soit l'autre...

    J'aimerais avoir votre avis la-dessus. Si ma page file.php est accessible avec ET sans l'extension .php, cela va t'il influencer mon référencement ?


    Merci à vous.
    Cordialement.
     
  2. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 661
    J'aime reçus:
    4
    Bonjour
    Ce qu'il ne faut pas, c'est que les moteurs indexent les deux versions de tes URL.
    Si le site n'est pas encore indexé, tu peux faire ce que tu veux. A moins qu'un jour quelqu'un s'amuse à mettre des liens vers tes url.php, elles ne seront pas indexées.

    Si par contre tes url.php sont déjà indexées et que tu diffuses de nouvelles URL, oui tu auras un problème de duplicate content, qu'il te faudra résoudre par la mise en place de redirections 301 url.php -> url

    Ceci dit, par sécurité, tu peux aussi mettre en place ces redirections.
     
  3. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    Merci de ta réponse nickargall,
    Je comprend mieux désormais et en effet, aucune page n'est encore indéxée puisque je travaille encore le site en local.

    J'utilise le code suivant :

    Code:
    Options +FollowSymlinks
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php
    RewriteCond %{HTTP_HOST} www.domain.com
    RewriteRule (.*) http://domain.com$1 [L,R=301]
    
    Les deux premiers RewriteCond sont pour permettre des urls sans .php et le second pour rediriger les http://domain.com vers http://www.domain.com

    Que faut t'il modifier pour que les url.php redirigent automatiquement vers url

    En faisant ainsi, cela m'assure que toutes les pages indexées contiendront le sous-domaine www. et n'aurons pas l'extension .php c'est bien ça ?

    Merci encore.
     
  4. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 661
    J'aime reçus:
    4
    ta deuxième rewrite rule fait l'inverse en fait; elle redirige toute url appelée sur www. vers la même url sans www.
    pour faire l'inverse, tu peux mettre
    Code:
    RewriteCond %{HTTP_HOST} !www.domain.com
    RewriteRule (.*) http://www.domain.com/$1 [L,R=301]
    
    Pour effectuer l'autre redirection souhaitée, tu peux essayer ça
    Code:
    RewriteRule ^(.*)\.php$ /$1 [L,R=301]
    
    soit, en tout et dans l'ordre (redirections avant),
    Code:
    Options +FollowSymlinks
    RewriteEngine on 
    
    ####redirection du domaine
    RewriteCond %{HTTP_HOST} !www.domain.com
    RewriteRule (.*) http://www.domain.com/$1 [L,R=301]
    
    ##redirection avec PHP vers sans PHP
    RewriteRule ^(.*)\.php$ /$1 [L,R=301]
    
    ##reecriture adresse 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php
    
    
     
  5. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    Merci encore de ta réponse nickargall.

    Pour le rewriting www., est-tu sûre ? Car j'ai mis ca sur mon serveur et lorsque j'entre http://site.com ca me redirige vers http://www.site.com et l'inverse ne marche pas.

    Conçernant la redirection pour les .php, est t'il possible de rajouter un nom de dossier dans la RewriteRule car je teste ça en local et l'url du site est : http://localhost/site/

    Merci encore.
    Cordialement.
     
  6. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 661
    J'aime reçus:
    4
    Ta première règle faisant "avec www" vers "sans www"
    dans ton message du demandais confirmation de l'inverse, je t'ai donc mis la règle qui fait "sans www" vers "www"
    Après, tu prends celle que tu veux

    Pour ajouter un dossier, oui, dans les règles de redirections, tu peux ajouter des répertoires
    exemple
    Code:
    RewriteRule ^(.*)\.php$ /site/$1 [L,R=301]
    
     
  7. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    Oui, nos codes doivent être identiques puisque avec mon code ca redirige bien sans www vers www.
    ...

    Et en utilisant

    Code:
    RewriteRule ^(.*)\.php$ /site/$1 [L,R=301]
    j'ai une erreur :

    Cette page Web présente une boucle de redirection.

    Je remet mon code complet :

    Code:
    Options +FollowSymlinks
    RewriteEngine on 
    
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php
    
    RewriteRule ^(.*)\.php$ /site/$1 [L,R=301]
    
    ErrorDocument 404 http://localhost/site/erreur
    
    Merci encore pour votre aide.
    Cordialement.
     
  8. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 661
    J'aime reçus:
    4
    Et en mettant la redirection avant la réécriture ?

    Code:
    Options +FollowSymlinks
    RewriteEngine on 
    
    
    RewriteRule ^(.*)\.php$ /site/$1 [L,R=301]
    
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php
    
    
    ErrorDocument 404 http://localhost/site/erreur
    
     
  9. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    Merci encore de votre réponse.

    Non, j'ai toujours la même erreur :

    Cette page Web présente une boucle de redirection.

    Merci encore.
     
  10. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 661
    J'aime reçus:
    4
    Bon désolé, sans avoir les mains dans le code, je sèche...
     
  11. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    En cherchant un peu partout et en bidoullant, je suis tombé sur un truc qui marche super bien.
    Dès que je tape l'url avec un ".php" à la fin, ca ma redirige vers la même page sans ".php"

    Voici le code :

    Code:
    Options +FollowSymlinks
    RewriteEngine on 
    
    # browser requests PHP
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
    RewriteRule ^/?(.*)\.php$ /site/$1 [L,R=301]
    
    # check to see if the request is for a PHP file:
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^/?(.*)$ /site/$1.php [L]
    
    Mais du coup, je me demandais si ce n'est pas mieux de faire comme beaucoup de gros sites, des pages seulement accessibles sans extension et lorsque je rajoute l'extension ".php", au lieu de me rediriger vers la page sans extension, cela me met la page d'erreur. Je pense que c'est mieux niveau référencement en plus.

    Nickargall, sauriez-vous comment modifier mon code pour rediriger les .php vers la page d'erreur ?

    Merci encore pour votre aide.
    Cordialement.
     
  12. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 661
    J'aime reçus:
    4
    ? pourquoi rediriger vers une page d'erreur ? Tu peux laisser comme ça, si ça redirige en 301, c'est très bien pour ton référencement. Et encore une fois, vu que le site n'était pas encore indexé avec ses URL en .php, cette redirection est vraiment au cas ou, elle n'a pas beaucoup d'intérêt.
     
  13. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    Oui c'est vrai tu as raison, ce serait créer des pages d'erreur pour rien ! Et en effet, le site n'est même pas encore en ligne, toutes les URL sur le site seront sous la forme "www.site.com/page" donc vu que les pages deviendront faciles à mémoriser, un utilisateur qui se trompe en rajoutant un .php ou met sans "www.", la redirection 301 sera la pour ça.

    J'ai repéré une dernière petite erreur, c'est que lorsque j'ajoute un "/" à la fin d'une url, par exemple : site/page/
    Je reçois une erreur de type :

    Code:
    Internal Server Error
    
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    
    Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    
    More information about this error may be available in the server error log.
    
    Apparement, la redirection en prend pas en compte les slashs à la fin de l'url...
    Aurais-tu un moyen pour réparer cela ? Cela doit certainement être un petit quelque chose à modifier dans le .htaccess mais je ne vois pas quoi.

    Je remet mon .htaccess ici :

    Code:
    Options +FollowSymlinks
    RewriteEngine on 
    
    # browser requests PHP
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
    RewriteRule ^/?(.*)\.php$ /site/$1 [L,R=301]
    
    # check to see if the request is for a PHP file:
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^/?(.*)$ /site/$1.php [L]
    
    RewriteCond %{HTTP_HOST} www.site.fr
    RewriteRule (.*) http://site.fr$1 [L,R=301]
    
    ErrorDocument 404 http://localhost/site/erreur
    
    Merci encore infiniment pour ces conseils.
     
  14. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    EDIT :

    J'ai aussi un gros bug après cette redirection .php, je ne peux plus rien faire sur mon site c'est à dire que lorsque je veux me connecter en utilisant le formulaire de connexion, rien ne se passe, pareil pour l'inscription etc...
    Je pense qu'il serait judicieux de l'enlever non ? Mais j'ai peur du duplicate content si je permet que les pages soient accessibles autant en .php que sans l'extension .php... Dans ce cas, il faudrait faire des pages d'erreur pour les .php dans ce cas..


    Probleme résolu.

    Je met le nouveau code que j'utilise :

    Code:
    Options +FollowSymlinks
    RewriteEngine on 
    
    # Unless directory, remove trailing slash
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/$ http://localhost/site/$1 [R=301,L]
    
    # Redirect external .php requests to extensionless url
    RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
    RewriteRule ^(.+)\.php$ http://localhost/site/$1 [R=301,L]
    
    # Resolve .php file for extensionless php urls
    RewriteRule ^([^/.]+)$ $1.php [L]
    
    RewriteCond %{HTTP_HOST} www.site.com
    RewriteRule (.*) http://site.com$1 [L,R=301]
    
    ErrorDocument 404 http://localhost/site/erreur
    
    Apparemment le code sous "# Unless directory, remove trailing slash" à permis d'éliminer mon problème puisqu'il fait une redirection directement si il y a un / a la fin d'une url.

    Une dernière et dernière question avant de classer ce topic parmi les topics résolus :

    Est-ce-que le code ci-dessus est bien pour mon référencement (oui je sais, je prend ça trop à coeur). C'est à dire :

    - Si il y a un slash a la fin de l'url, redirection 301 pour enlever le slash
    - Si il y a une extension .php a la fin de l'url, redirection 301 pour enlever l'extension
    - Si il n'y a pas de www., redirection 301 pour ajouter le www.

    Merci encore pour votre aide.
    Cordialement.
     
  15. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 661
    J'aime reçus:
    4
    Oui, c'est bon, même si il y a beaucoup de superflu :)
     
  16. cyclone200
    cyclone200 WRInaute discret
    Inscrit:
    15 Juillet 2013
    Messages:
    74
    J'aime reçus:
    0
    Il vaut mieux prévenir que courir ! :)

    Merci encore pour ton aide.
    Cordialement.
     
Chargement...
Similar Threads - Supprimer extension php Forum Date
Supprimer extension .html et impact sur le réferencement Problèmes de référencement spécifiques à vos sites 11 Juillet 2013
Comment supprimer un onglet personnalisé (app) sur Facebook Facebook 6 Septembre 2021
Désindexer ou supprimer ? Débuter en référencement 25 Mai 2021
Supprimer événement groupe FB crée par un membre Facebook 7 Avril 2021
Comment supprimer un Pixels Facebook ? Facebook 19 Mars 2021
Supprimer la version en cache de dizaines de PDF Crawl et indexation Google, sitemaps 11 Janvier 2021
Supprimer son compte google maps pour cause d'avis négatifs YouTube, Google Images et Google Maps 10 Décembre 2020
Supprimer mon site de Similarweb ? Ou modifier les données ? Administration d'un site Web 26 Novembre 2020
RGPD : faire supprimer par Facebook l'ensemble de mes informations Droit du web (juridique, fiscalité...) 2 Novembre 2020
Search Console Supprimer des doublons Crawl et indexation Google, sitemaps 26 Octobre 2020