7

mod_rewrite はいつも私を困惑させます...次のクリーンな URL を取得するために必要なルールを誰か教えてくれませんか? 左側が目的の URL、右側が実際の URL。

/our-work/ => /our-work.html
/our-work/some-project/ => /our-work/some-project.html
/contact/ => /contact.html

ご覧のとおり、すべての URL にも末尾のスラッシュを強制したいと考えています。

ありがとう!

4

1 に答える 1

10

このルールを試してください:

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]
于 2010-05-14T18:03:40.900 に答える