Partage
  • Partager sur Facebook
  • Partager sur Twitter

URL Rewriting masquer .html

Sujet résolu
    30 juin 2020 à 23:53:29

    Bonjour ! J'ai un site web réalisé en .html dont je souhaite masquer complètement et définitivement l'extension.html sur tous les liens du site. Après quelques recherches, j'ai trouvé des lignes de code pour fichier .htaccess qui me permettent de me rendre sur les pages sans saisir .html à la fin de l'URL. Mais le problème est qu'à chaque fois qu'on clique sur un lien contenu dans la page, l'on voit toujours l'extension.html dans la barre d'adresse. Je voudrais que cela cesse. Svp, aidez moi !

    Voici les lignes de code pour .htaccess:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.html -f
    RewriteRule ^(.*)$ $1.html [NC,L]

    -
    Edité par Benzouye 1 juillet 2020 à 19:47:11

    • Partager sur Facebook
    • Partager sur Twitter
      1 juillet 2020 à 0:18:32

      C'est à toi de changer tes liens.

      Sinon il faut que tu ajoutes une règle pour faire une redirection HTTP avec .html => sans

      (dans l'idéal, il faudrait faire les deux)

      PS : pas besoin d'échapper le .

      -
      Edité par julp 1 juillet 2020 à 0:19:23

      • Partager sur Facebook
      • Partager sur Twitter
        1 juillet 2020 à 0:21:57

        D'accord Julp. Mais peux tu m'aider à le faire stp ?
        • Partager sur Facebook
        • Partager sur Twitter
          1 juillet 2020 à 0:23:33

          Tu as su coder l'inverse, qui est plus difficile pourtant ...

          RewriteRule ^(.+)\.html$ $0 [L,R=permanent] ?

          • Partager sur Facebook
          • Partager sur Twitter
            1 juillet 2020 à 0:45:50

            J'applique ta règle Julp. Cependant, j'arrive pas à accéder à la page demandée Avec ou Sans .HTML.
            • Partager sur Facebook
            • Partager sur Twitter
              1 juillet 2020 à 0:58:32

              C'est-à-dire ? Redirection en boucle ? J'ai oublié de prendre en compte qu'il ne fallait pas rediriger quand on tombait sur le .html par réécriture :

              RewriteCond %{ENV:REDIRECT_STATUS} =""
              RewriteRule ^(.+)\.html$ $1 [L,R=permanent]
              

              -
              Edité par julp 2 juillet 2020 à 15:47:28

              • Partager sur Facebook
              • Partager sur Twitter
                1 juillet 2020 à 1:02:50

                Oui Julp. C'était une Rédirection en boucle. Cette fois avec cette nouvelle règle, pas de Rédirection en boucle et la page demandée Avec ou Sans .HTML ne s'affiche pas.
                • Partager sur Facebook
                • Partager sur Twitter
                  2 juillet 2020 à 0:04:51

                  "ne s'affiche pas" veut dire ici que je tombe sur une page d'erreur 404.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 juillet 2020 à 0:10:10

                    Quelle est l'URL de départ ? Celle d'arrivée (s'il y a redirection HTTP) ?

                    Tu as accès aux logs ?

                    As-tu essayé de mettre un RewriteBase (si tu n'en as pas déjà un) ?

                    -
                    Edité par julp 2 juillet 2020 à 0:11:03

                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 juillet 2020 à 0:25:16

                      l'URL de départ est la même que celle d'arrivée.

                      Pas accès aux logs.

                      J'ai non plus pas essayé de mettre un RewriteBase.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 juillet 2020 à 15:49:19

                        J'ai fait une c0nnerie, j'ai mis $0 au lieu de $1 sinon j'ai testé : ça fonctionne.

                        Tu as d'autres règles et elles entrent en conflit ?

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 juillet 2020 à 21:37:49

                          Salut Julp. J'ai remplacé le 0 par 1 et voilà ce qui se passe:

                          1) Quand je me rends sur la page d'accueil (www.monsite.web) , pas de soucis. C'est parfait.

                          2) Lorsque je clique sur un lien de la page (par exemple : CONTACT), il me redirige sur une page d'erreur 404 et le lien qu'on peut lire dans la barre d'adresse est: "https://monsite.web/home/c1311007c/public_html/monsite/contact" avec "c1311007c" comme nom d'utilisateur chez mon hébergeur.

                          Et par curiosité, j'ai moi même complété le lien "https://monsite.web/home/c1311007c/public_html/monsite/contact"  par ".html" et toujours la page 404 et le lien devient dans la barre d'adresse : "https://monsite.web/home/c1311007c/public_html/monsite/contact".

                          C'est ce qui se passe le $1.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 juillet 2020 à 21:46:41

                            Ca démontre justement qu'il te faut un RewriteBase : Apache est perdu il ne sait pas ici faire le mapping chemin HTTP <=> chemin système par lui-même d'où le fait qu'il te le recolle dans l'URL. C'est là le but du RewriteBase, le lui indiquer explicitement.

                            (en clair, si le .htaccess est à la racine, tu rajoutes RewriteBase / à ton .htaccess)

                            -
                            Edité par julp 2 juillet 2020 à 21:51:39

                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 juillet 2020 à 22:56:27

                              Salut! Ça marche toujours pas.

                              RewriteBase /
                              RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^(.+)\.html$ $1 [L,R=permanent]
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 juillet 2020 à 23:01:52

                                Définir "ne pas marcher" ? Tu obtiens quoi : 404 ? redirections en boucle ? 500 ? autre ?

                                Tu as vidé ton cache ?

                                Ton .htaccess est bien à la racine ?

                                Tout n'est pas sur une ligne comme sur ton post quand même ?

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  3 juillet 2020 à 0:07:08

                                  Désolé de ne pas être explicite.

                                  J'obtiens un 404.

                                  Supprimé Caché oui, je suis allé en navigation privée et même l'essayer sur un autre navigateur. Toujours du 404.

                                  Exactement, mon .htaccess est bien à la racine : "public_html"

                                  Tout n'est pas sur la même ligne non plus.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    3 juillet 2020 à 15:32:55

                                    > Exactement, mon .htaccess est bien à la racine : "public_html"

                                    Euh, non, ça ferait qu'il n'est pas à la racine.

                                    J'ai encore testé, ça fonctionne parfaitement de mon côté. Il n'y a que si ça tombe sur un sous-répertoire avec un .htaccess avec de la réécriture que j'arrive à obtenir une 404 (ce qui est normal).

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      3 juillet 2020 à 23:41:53

                                      Bien. Pas de soucis. Je crois que tu m'as assez aidé comme ça.

                                      Je t'en remercie énormément.

                                      Je crois que je me débrouillerai pour le reste.

                                      Merci beaucoup Julp.

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      URL Rewriting masquer .html

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown