0
.htmlを付けずにすべてのURLを.htmlにリダイレクト(301)したいと思います。 例:URLをURLに書き直し、htmlで終わらない(.html)
example.com/siteが
をexample.com/site.htmlにリダイレクトされなければならない私は、次のことを試してみました:
RewriteRule (.+)$ /$1.html [L,R=301]
.htmlを付けずにすべてのURLを.htmlにリダイレクト(301)したいと思います。 例:URLをURLに書き直し、htmlで終わらない(.html)
example.com/siteが
をexample.com/site.htmlにリダイレクトされなければならない私は、次のことを試してみました:
RewriteRule (.+)$ /$1.html [L,R=301]
あなたのルールを引き起こす可能性があります既にリダイレクトされていてもURLを書き換えるため、リダイレクトループを使用します。
パターンでは、URLの末尾が.html
ではないことを確認する必要があります。あなたは(たとえば、あなたの例のように)空のパスのためにこれを適用しない場合は、代わりに
RewriteRule !\.html$ %{REQUEST_URI}.html [L,R=301]
したり、パターンの一致を再利用する必要があります。
あなたはこれを達成するために否定パターンを使用することができます、あなたはRewriteConditionを使用することができます。
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule (.+)$ $1.html [L,R=301]
注これが唯一のあなたが記載された正確な場合のために働く非常に簡単な例であること。これにより、.htm
で終わるURLが.htm.html
に書き換えられます。これは、必要な場合とそうでない場合があります。