ファイルを使用して、ルートを持つ他のフランス語のページに.htaccess
リダイレクトしたいのですが(例:)www.example.com/fr/
www.example.com/
/fr/
www.example.com/fr/page-name
使用してみましたRedirect 301 /fr/ https://example.com/
が、フランス語のページがすべて英語版にリダイレクトされてしまい、望ましくありません。
これを回避する方法はありますか?
答え1
Redirect 301 /fr/ https://example.com/
mod_aliasRedirect
ディレクティブはプレフィックスマッチングなので、単純に始まるものすべてをリダイレクトし/fr/
、一致後のすべてをターゲット URL の末尾にコピーします。これは URL ブランチ全体 (またはサイト全体) をリダイレクトするのに最適ですが、特定の URL には適していません。
特定の URL をリダイレクトするにはRedirectMatch
、単純なプレフィックス一致ではなく、正規表現と一致する を使用する必要があります。
例えば:
RedirectMatch 301 ^/fr/$ https://example.com/
既存の mod_rewrite ディレクティブ (つまりRewriteRule
) がある場合は、代わりに mod_rewrite を使用する必要がある (または使用する方が望ましい) ことに注意してください。
参照: