0

ベースパスの国コードを更新し、最終的に次の場所に移動するユーザーをリダイレクトしようとしています: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に適用された書き換え条件に気付かなかった

4

1 に答える 1

0

これでうまくいくはずです:

Options +FollowSymLinks

DirectoryIndex index.php

RewriteEngine on        
RewriteRule   ^/uk(.*) /gb$1 [R=301,L]
于 2012-11-14T17:59:35.367 に答える