.htaccessのmod_rewriteでのリダイレクトする

ノスタルジックなシステムにおいて下記のようなURLを

http://localhost/post.php?user=hoge&id=10

下記のようにリダイレクトしたい場合

http://localhost/post/hoge/10

.htaccessには下記のように記述します。

RewriteCond %{QUERY_STRING} user=([a-z]+)&id=([0-9]+)
RewriteRule ^post\.php$ /post/%1/%2? [L,R=301]

最後の?をつけないとクエリがそのまま渡ります。クエリをそのまま渡したい場合は削除すると良い。

リダイレクトしたあとのURLを下記のように書き換えてユーザーにアクセスさせる場合、このURLでも上記のリダイレクト対象となりますので

RewriteRule ^post/([a-z]+)/([0-9]+)$ /post.php?action=tag&id=$1 [QSA,L]

別のファイルでURL書き換えをさせるのが良かった

RewriteRule ^post/([a-z]+)/([0-9]+)$ /post2.php?action=tag&id=$1 [QSA,L]

コメントを残す

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

CAPTCHA