.htaccessファイルとmod_rewriteを持つ静的なHTMLファイルのためのセマンティックのURL
-
26-09-2019 - |
質問
mod_rewriteのはいつも私をバッフル...缶誰も私に、私は、次のクリーンなURLを取得する必要があるルールを教えて?左側の目的のURL、右の本当のURLます。
/our-work/ => /our-work.html
/our-work/some-project/ => /our-work/some-project.html
/contact/ => /contact.html
あなたが見ることができるように、私はあまりにもすべてのURLの最後のスラッシュを強制したい。
ありがとうございます。
解決
このルールを試してみてください
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
と最後のスラッシュを追加する:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
これらの規則の前に外部へのリダイレクト(明示的に使用してのR のフラグまたは暗黙的に)原因だけで内部リダイレクト/書き換え原因ということを、これらのルールを入れていることを確認してください。したがって、この場合:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
所属していません StackOverflow