あなたはこのように見えるフレンドリーなURLを使用するつもりなら:
www.example.com/<language>/<value1>/<value2>
を、その後のApache はは、あなたの第一及び第二の「非友好的」なURLを区別することができません言及:パラメータ名(page
とmodel
第一で、otherpage
及び第二URLでothermodel
)が存在しない、とguesseすることはできませんので
www.example.com/?lang=en&page=test&model=mymodel
www.example.com/?lang=en&otherpage=othertest&othermodel=myothermodel
ですd、フレンドリーなURLから。
考えられる回避策は、使用するシナリオの数、つまり処理するパラメータの数によって異なります。
など。 <parameter_set>
場合は、最初のパラメータセットを使用するようにApacheを伝え、その後、
www.example.com/<language>/<parameter_set>/<value1>/<value2>
:あなたが唯一のいくつかのシナリオを持っている場合は、パラメータ名はそうのように、使用するようにApache を伝えるフレンドリーURLパターンにパーツを追加することができます例えば1であれば2番目のセット、そうであれば2番目のセットです。
サンプル書き換えルールセットは次のようになります。
RewriteEngine On
RewriteRule ^([\w]+)/1/([\w]+)/([\w]+)$ ./?lang=$1&page=$2&model=$3
RewriteRule ^([\w]+)/2/([\w]+)/([\w]+)$ ./?lang=$1&otherpage=$2&othermodel=$3
(彼らは他の文字列かもしれない)1
と2
は完全に任意であることに注意してください。
当然、the official docsが役立ちます。
あなたは友好的なURLが与えられているので、Apacheはそれを一意の「非友好的な」URLにマップするルールを必要とします。あなたの2つの友好的なURLの例では、第1のものと第2のものとを区別することはできません(language/value1/value2と全く同じパターンを持ち、otherpageの代わりにvalue1をページにマップする手掛かりはありません。 modelの代わりにothermodelへ –
私はそれを行うための解決策がありました。 –