要件に合わせて使用することRewriteMap
をお勧めします。これを使用する方法の例を次に示します。
httpd.conf
次の行をファイルに追加します。
RewriteMap areaMap txt://path/to/areaMap.txt
/path/to/areaMap.txt
次のようなテキスト ファイルを作成します。
London 1
Paris 2
Moscow 3
以下の .htaccess ファイルに次の行を追加しますDOCUMENT_ROOT
。
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^ID= [NC]
RewriteRule ^([a-z-]+)/([^/]+)/?$ /$2?ID=${areaMap:$1} [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^ID= [NC]
RewriteRule ^([a-z-]+)/?$ /?ID=${areaMap:$1} [L,QSA,NC]
利点:この設定を行う/path/to/areaMap.txt
と、新しいエリア ID マッピングがあれば、新しいルールを追加する必要なく、いつでもファイルを編集または再作成できます。