ベースパスの国コードを更新し、最終的に次の場所に移動するユーザーをリダイレクトしようとしています:www.example.com/ uk / etc1 / etc2/etc.。
www.example.com/ gb / etc1 / etc2/etc.。
しかし、時にはwww.example.com/ uk #etc
これはmod_rewriteではかなり些細なことだと思いました。何も機能させることができません。
私が来たと感じる最も近いのは次のルールですが、英国に着陸しても何も起こりません。
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule .* index.php [L] #this is active already on the page
RewriteRule ^/uk(.*) /gb(.*) [R]
</IfModule>
編集:
これは近いように見えますが、私は無限ループで立ち往生しています:
RewriteRule ^uk(.*) /gb$1 [R]
編集2/ (3)回答:
これは正しくリダイレクトされているようです(正しい):
RewriteRule ^uk(.*)$ /gb$1 [R=302,L]
RewriteRule .* index.php [L]
しかし、ページのフォーマットが壊れており、ループの問題のように見えます。
しかし、フォーマットが正しくありません。2つのRewriteRuleを交換すると、フォーマットは正しいのですが、uk=>gb変換がまったく呼び出されないようです。
答え
Rewriteconditionsに注意してください。それらの重要性に気付かず、元のindex.phpの書き換えのためにそれらを削除しました。これは、メディアを見つけることができなかったことを意味します。元のindex.phpに適用された書き換え条件に気付かなかった