index.php:
<?php
$map = array(
1 => 'city',
2 => 'Portland',
3 => 'Kaunas',
4 => 'Hokaido',
.....
);
if (isset($_GET['local']) && intval($_GET['local']) < 600 && intval($_GET['local']) > 0) {
header('Location: mysite.com/' . $map[intval($_GET['local'])]);
die(); // Redirect to use the pretty url
}
$path = explode('/', explode('?', $_SERVER['REQUEST_URI'])[0]); // might need to expand if php version < 5.4
$city = $path[1];
.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [PT,L]
</IfModule>
基本的に、このコンボが行うことは、変数'local'を持つGET文字列が渡された場合、都市IDを名前に変換してリダイレクトを実行することです。その後、クエリ文字列を取得して、それを使って好きなことをします