mod_rewrite で書き換えたURLにクエリーを引き継がない方法

書き換え後のURLの末尾に ? を付けるだけ。

RewriteCond %{REQUEST_URL} id=9999
RewriteRule ^/$ /NewURL/%1.html? [R=301,L]

mod_rewriteでのクエリの扱い | Muses Factory

ただ、以下のように書くとNGであった。

RewriteCond %{REQUEST_URL} id=9999
RewriteRule ^/$ /NewURL/%1? [R=301,L]

こう書くと

http://chmonos.net/9999?id=9999

となってURLが引き継がれてしまっている。

RewriteCond %{REQUEST_URL} id=9999
RewriteRule ^/$ /NewURL/%1/? [R=301,L]

とすると上手く書き換えられる。
後方参照の%1と?を分離して書く方法があればいけそうだが・・・

ちなみに %{1} はNGだった。

カテゴリー: WordPress   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です