無料Wikiサービス | デモページ
Linuxなどのメモ書き
検索

Adsense

mod_rewrite - QSAフラグ の差分
Rev.1→Rev.2  追加箇所 削除箇所



リファレンスを読んでもいまいちピンと来ないQSAに関するメモ。

QSAオプションがないケース

RewriteRule ^/(.+)/pg/(.*)$ /$1/index.php?pg=$2 [L]

このルールは http://www.bit-hive.com/april/pg/sample のようなURLを http://www.bit-hive.com/april/index.php?pg=sample のように変換するものである。

QSAオプションがないと http://www.bit-hive.com/april/pg/sample?code=1 のようにクエリ文字列が付加されていた場合でもhttp://www.bit-hive.com/april/index.php?pg=sample
のようクエリ文字列が置き換えられてcode=1は消えてしまう。

QSAオプションがあるケース

上記のように入力URLにクエリ文字列が存在する場合は、QSAをいれて以下のようにしておけばよい。

RewriteRule ^/(.+)/pg/(.*)$ /$1/index.php?pg=$2 [QSA,L]
http://www.bit-hive.com/april/pg/sample?code=1 http://www.bit-hive.com/april/index.php?pg=sample&code=1
QSAオプション

リファレンスんでもいまいちピンないQSAのように最後するメモクエリ文字列code=1付加された変換される


QSAオプションがないケース

RewriteRule ^/(.+)/pg/(.*)$ /$1/index.php?pg=$2 [L]このルールはhttp://www.bit-hive.com/april/pg/sampleのようなURLをhttp://www.bit-hive.com/april/index.php?pg=sampleのように変換するものである。入力URLにhttp://www.bit-hive.com/april/pg/sample?code=1のようにクエリ文字列が付加されていた場合でもhttp://www.bit-hive.com/april/index.php?pg=sampleのようクエリ文字列が置き換えられてcode=1は消えてしまう。QSAをいれて以下のようにしておけばRewriteRule ^/(.+)/pg/(.*)$ /$1/index.php?pg=$2 [QSA,L]http://www.bit-hive.com/april/index.php?pg=sample