Comment définir le .html à la fin d’une URL de site Web?

J’ai actuellement un site Web où il y a www.website.com/about.html .

Cependant, si je tape www.website.com/about/ dans l’URL, la page d’erreur 404 s’affiche par défaut .

J’ai vu quelque chose à propos de l’édition du fichier htaccess, mais je ne sais pas trop comment procéder.

Ajoutez simplement cette ligne en haut de votre htaccess pour que votre extension d’URL soit moins longue:

 Options +MultiViews 

OU si vous préférez mod_rewrite utilisez ce code dans votre fichier DOCUMENT_ROOT/.htaccess :

 RewriteEngine On # To externally redirect /dir/file.html to /dir/file RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.html[\s?] [NC] RewriteRule ^ /%1 [R=301,L,NE] # To internally forward /dir/file to /dir/file.html RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1.html -f RewriteRule ^(.+?)/?$ /$1.html [L] 
 /about/ 

Est un directeur. Qui sur un serveur appellera le fichier index. * Dans ce répertoire à servir.

Appelez directement /about.html. Ou (plus éloquemment) mettre un index. * (Peut être html php peu importe) dans / about / à la place.

www.website.com/about.html propose un fichier nommé about.html stocké dans le dossier racine de votre application.

Lorsque vous essayez d’accéder à www.website.com/about/ cela signifie que vous essayez d’accéder à un fichier dans un dossier nommé “about” dans votre application. Ce que vous ne l’avez pas dans votre solution et vous obtenez une erreur.

Donc, la façon dont vous y accédez est fausse.

Essayez le code suivant pour supprimer .html et accéder au fichier auquel vous tentez d’accéder

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

Comme vous voulez supprimer .html de votre URL d’application, vous n’avez pas besoin d’écrire .html dans vos liens de navigation, par exemple,

 about 

Comme mentionné dans anubhava, vous pouvez append cette ligne en haut de votre fichier .htaccess afin de réduire l’extension de vos URL: Options + MultiViews

Cependant, vous devez toujours y accéder en tant que

 www.website.com/about 

parce qu’avec

 www.website.com/about/ 

vous allez au répertoire about à la place. J’espère que cela t’aides.

Vous devez apporter des modifications au fichier de configuration Apache pour cela. Cette question a déjà répondu ici: Comment supprimer .html de l’URL