サーバを移転するということで、以下のようなリダイレクトを書きました。

RedirectMatch /contents/([0-9]*)\.html http://www.newsite.com/path/?p=$1

今まで 001234.html としてアクセスしていたコンテンツに ?p=001234 としてアクセスしたかったのですが、

http://www.newsite.com/path/%3fp=001234

と、? マークが余計にエンコードされてしまいました。調べたところ、RewriteRule を使うと良さそうだということで、以下のようにしました。

RewriteEngine On
RewriteEngine on
RewriteRule contents/([0-9]*)\.html$ http://www.newsite.com/?p=$1 [R=301,L]

これでうまくいった感じ。
RedirectMatch では ? や % を含むURLはうまくリダイレクトできないようです。

カテゴリー: サーバ関連

0件のコメント

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください