.htaccessファイルとmod_rewriteを持つ静的なHTMLファイルのためのセマンティックのURL

StackOverflow https://stackoverflow.com/questions/2836400

質問

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]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top