2011-12-05 6 views
0

私はGETTEXTを使用してPHPサイト全体の翻訳を実装しています。私は、PHPファイル(各セクションの1)の束を持っている、と私はGET変数を経由して言語を制御します。htcaccess - {HTTP_REFERER}のスライスを使用してRewriteRuleを使用する

http://www.domain.com/section.php?lang=en [for english] 

私の最初の目標は、きれいな方法でこれを置くことである、のような:

http://www.domain.com/en/section 

私は一種の、.htcaccess経て(いないので、うまく)ということを行うために管理が、その後、私は二つの問題を思い付く:

  1. 私が使用する言語を識別するために、すべてのページが欲しいですHTTP_REFERERを見てください(that is poss誰かがオフになっている場合に備えて、私はセッションや料理に頼る必要はありません。

これを:私は同時に、書き換えることhtcaccessを伝えることができますどのように

  • ...他のオプションは、すべてのhrefの前に/現在の言語/ ENをエコーするだろうと思います。

    http://www.domain.com/path/to/whatever.php?lang=en&var1=a&var2=b 
    

    そして、この:

    http://www.domain.com/XX/path/to/whatever/?var1=a&var2=b 
    

    http://www.domain.com/assets/js/functions.js?lang=en 
    

    や他の言葉で:

    http://www.domain.com/XX/assets/js/functions.js 
    

    へのパスが正しいドメイン名の後に2文字のフォルダがあり、拡張子がない

    • 場合、削除2文字のフォルダを作成し、パスの最後に.phpを追加して、次に?lang = XXと入力したGET変数を追加します。それが独自のindex.phpを持つフォルダとして存在するかどうかを最初に確認できますか? ?

    • パスが右ドメイン名の後に2文字のフォルダがあり、拡張子を持って、同じことを行うが、

    元の拡張子を維持した場合、私はそれが尋ねる長い質問です知っています、しかし、私は本当に私はそれについて多くのことを読んで...ここに失ったんだけど、REGEX/htaccessのは、私だけのためにあまりにも厳しいです...私は希望なし延長部分については任意のヘルプ

  • +0

    現在のURLを見れば、リファラーを見たいのですが?それとも、別のサイトから来ている人が自分の言語でページにリダイレクトされるようにしたいのですか?より良い方法は、refererの代わりにAccept-Languageヘッダを見ることです。 – Gerben

    答えて

    0
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^([a-z]{2})/(.*)$ $2?lang=$1 [QSA,L] 
    

    をいただければと思いますwhateverという名前のフォルダにwhatever.phpと入力し、PHPの名前を0に変更してください。 htaccessより簡単ウェイ

    関連する問題