• 締切済み

mod_rewrite 動的から静的へ変換

ブログのシステムをWordPressに移行しました。 サイトへのアクセスは、次のように変わりました。 今まで html/index.php?p=123 次から html/weblog/123 (WordPress側でこのように設定) *123は、ログID例 過去のログデータはDB操作を行い、WordPressのときと同じIDに振り当てました。 過去のアクセスの仕方でも該当する記事を表示できるようにしたいです。 動的から静的へ変換すればよいかと思うのですが mod_rewrite関係がよくわかりません。 ネットで調べましたら、サンプルが静的から動的ばかりで困っています。 知識のある方のお力を貸してくださいませ。

みんなの回答

回答No.1

htmlというディレクトリがドキュメントルートだとすると、 RewriteEngine on RewriteRule ^/index.php?p=(.*)$ /weblog/$1 [R=301,L] で行けませんかね。 全くの未検証ですが。

ikarukas
質問者

お礼

一般的な書式ではこのうな記述になるのですね。 どうもありがとうございます

ikarukas
質問者

補足

回答ありがとうございます。 「p」を使用する場合は、WordPressの初期設定?で自動変換されていました。 同様に「id」という名称での変換も考えているのですが、 RewriteRule ^/index.php?id=(.*)$ /weblog/$1 [R=301,L] このように「p」を「id」に変更した場合、変換されません。 何度か実験した結果、以下のように「?」を使わないと、 期待された変換を行うことに気がつきました。 RewriteRule ^/index.phpid=(.*)$ /weblog/$1 [R=301,L] 変換前 html/index.phpid=123 変換後 html/weblog/123 「\?」としてもうまくいきません。 何か間違っているのでしょうか。 対策などありましたらお願いします。

関連するQ&A