Comment supprimer .html de l’URL?

Comment supprimer .html de l’URL d’une page statique?

De plus, je dois redirect toute URL avec .html vers celle qui ne l’a pas. (ex: www.example.com/page.html à www.example.com/page).

Avec .htaccess sous Apache, vous pouvez faire la redirection comme ceci:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

En ce qui concerne la suppression de .html de l’URL, il suffit de faire un lien vers la page sans .html

 page 

Je pense que certaines explications de la réponse de Jon seraient constructives. Le suivant:

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d 

vérifie que si le fichier ou le répertoire spécifié n’existe pas, alors la règle de réécriture se poursuit:

 RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

Mais qu’est ce que ça veut dire? Il utilise l’ expression régulière (expressions régulières) . Voici un petit quelque chose que j’ai fait plus tôt … entrer la description de l'image ici

Je pense que c’est correct.

REMARQUE: Lorsque vous testez votre .htaccess n’utilisez pas de redirections 301. Utilisez 302 jusqu’à la fin du test, car le navigateur mettra en cache 301s. Voir https://stackoverflow.com/a/9204355/3217306

Mise à jour: je me suis légèrement trompé . correspond à tous les caractères, sauf les nouvelles lignes, et inclut donc les espaces. En outre, voici une feuille de sortingche utile regex

Sources:

http://community.sitepoint.com/t/what-does-this-mean-rewritecond-request-filename-fd/2034/2

https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules