2012-01-27 20 views
0

したがって、複数の言語で動作するように、小さなHTML専用のWebサイトを書き直す必要があります。私はまた、ランクを傷つけないように、既存のリンクを操作し続けること、そして元のフォルダのレイアウトを維持したい。.htaccessは特定のリンクでしか動作しません

私が意味するのは、デフォルト言語lvを使用するつもりです。それから私は、唯一の.htmlリンク上で動作するRewriteRuleを持っている必要があり、第一及び第二のスラッシュの間(lv|en|ru)のいずれかがある場合にのみ、このような何か:

http://example.com/lv/index.html 

それはindex.phpに配線する必要がありますそれが欠けているなら、それはセッションのデフォルト値をチェックし、欠落していればデフォルトを使います。

私が思い付くことができましたことはこれです:

RewriteRule ([a-zA-Z]*)\.html $1.php 

これは、右ページに、右の属性を持つことのルートとして、リンク上で正常に動作しますが、それは私に固有ではありませんフォールバックを含まないため、他のすべてのリソースを再ルーティングしようとします。フォールバックには、最初のセグメントがなくてはなりません。つまり、言語が除外されます。

ヘルプ?

答えて

0

私はあなたを正しく理解していれば、あなたはこれを強調しています。 PHPスクリプトを導入する必要はありません。あなたが言っているのは、HTMLファイルには3つの言語のバリエーションがありますが、他の拡張は3つの言語すべてに共通するということです。だからもう一度試してみましょう。私は、そのLVのHTMLがDOCUMENT_ROOT階層に住んでいると仮定していますが、あなたは英語とロシア語のためのミラー階層を持っているということなので、:

RewriteEngine On 
RewriteBase /

# If the request is for a language subdirectory: 
# anything other than HTML or 
# the request is for the default lv 
# then remove the language subdir 

RewriteCond %{REQUEST_URI} !\.html\b 
RewriteCond $1    =lv 
RewriteRule ^(lv|en|ru)/(.*) $2   [L] 
+0

をしかし、サイトはかなりイメージ重いです。それはまた、非常に多くの小さなhtmlファイルを含んでいます。それゆえ、すべての言語に単一のリソースを使用し、そのままの形でその構造を残すことは、私には論理的にしか見えませんでした。維持しやすい、いいえ? –

+0

Janis、Q&Aであなたの要件を発見する必要がなければ、鮮明な回答をしたい場合はもっと簡単です。したがって、私はあなたのための言語の変種がほしいhtmlファイルだけを想定しています。私はすぐにルールセットを更新します。 – TerryE

関連する問題