0

http://www.myurl.com/usa/california/sanjoseのようなURLがhttp://www.myurl.com/c=1&st=3&area=14にリダイレクトされるURL書き換えを行うことは可能ですか

ここでの問題は、これまでずっとhttp://www.myurl.com/c=1&st=3&area=14のようなURLを使用してきたことです。すべての地域の州と国はデータベース内の数字で表されます。したがって、上記の例で、usa / california/sanjoseがc=1&st = 3&area = 14にリダイレクトする場合、ユーザーがusa / florida / tallahasseeと入力すると、c = 1&st = 5&area=3にリダイレクトする必要があります。国、州、市によって番号が変わります。

URL書き換えは、名前に応じて名前を自動的に数字に変更できますか、またはデータベースを更新してすべての数字を名前に変更し、phpファイルが数字ではなく名前に基づいてデータを描画できるようにする必要があります。

4

1 に答える 1

1
  1. 名前に基づいて書き換えることはできますが、それはルールセットの1つの地獄になります(すべての州名、すべての国名、およびすべての地域をそれに応じて書き換える必要があります-基本的にすべてのデータベース)。

  2. データベースにも国名や州名はありませんか?名前を取得し、それらをIDに変換してから、以前と同じようにIDを操作することをお勧めします(これが推奨されます)。

素敵なURLをパラメータに変換するルールセット:

RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /?country_name=$1&state_name=$2&area_name=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+) /?country_name=$1&state_name=$2 [L,QSA]
RewriteRule ^([^/]+) /?country_name=$1 [L,QSA]

最初のルールはすべての3つのパラメーターを書き換えます。2番目の国と州および3番目-国のみこれを他のファイル(通常のインデックスではない)にポイントし、パラメーターをIDに変換した後-元のハンドラーを含めることもできます

于 2012-06-24T06:13:48.687 に答える