URLから.htmlを削除するための.htaccessファイルが機能しない
ページのURLにある.htmlを削除しようとしていますが、.htaccessファイルのコードが唯一の方法であり、ほぼすべての方法とコードをオンラインで試しましたが、うまくいきませんでした。作業。
.htaccessファイルを作成し、public_htmlファイルに配置しました。私が使用している一般的なコードは次のとおりです。
RewriteEngine On RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^([^。] +)$ $1.html [NC、L]
しかし、私はコードの他の多くのバリエーションを試したので、問題はコードではなく、ファイルがWebサイトにロードされる方法にあると思いますか?
はい、すべてのhrefは.htmlなしで短縮されます:ex / <li><a href="/contact">Contact</a></li>
主なエラーは、常に404エラーが発生することです。ex/ website.com / contactのページにアクセスしようとすると見つかりません。しかし、website.com / contact.htmlは正常に機能するか、取得/エラーが発生しません
ホストされているWebサイトとvscodeライブサーバーを介したテストの両方でこれを試しましたが、どういうわけか.htaccessファイルではない問題だと思いますか?このソリューションは私以外のほとんどすべての人に有効なので。
回答
1 JackSparrow
#remove html file extension-e.g. https://example.com/file.html will become https://example.com/file
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [NC,L]
私のために働いたのは、plothostから、あなたは行を逃しているようです。