人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Apacheのmod_rewriteをつかって、URL中のアンダースコアをハイフンに置き換えるRewriteRuleを教えてください。

つまり、
http://example.com/blog/2008/05/post_14.html
というようなURLを
http://example.com/blog/2008/05/post-14.html
にリダイレクトするコードが知りたいです。

#ちなみに用途は、
http://blog.bq69.net/2008/03/mt-41-upgrade-contd.html
この現象を何とかしたいのです。

●質問者: mogya
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache mod_rewrite URL コード スコア
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● yshkw
●100ポイント

お急ぎであればこれで上記の例(アンダーバー4個まで)に対応できます。

アンダースコアが5個以上の場合は、お察し下さい。

RewriteEngine on
RewriteBase /

RewriteRule ^([0-9]+)/([0-9]+)/([^_]+)_([^_]+).html?$ $1/$2/$3-$4.html [L]
RewriteRule ^([0-9]+)/([0-9]+)/([^_]+)_([^_]+)_([^_]+).html?$ $1/$2/$3-$4-$5.html [L]
RewriteRule ^([0-9]+)/([0-9]+)/([^_]+)_([^_]+)_([^_]+)_([^_]+).html?$ $1/$2/$3-$4-$5-$6.html [L]
RewriteRule ^([0-9]+)/([0-9]+)/([^_]+)_([^_]+)_([^_]+)_([^_]+)_([^_]+).html?$ $1/$2/$3-$4-$5-$6-$7.html [L]
◎質問者からの返答

そうですね。引き続き、スマートな回答があればお待ちしております。


2 ● znz
●100ポイント ベストアンサー

Nでループさせるのはどうでしょうか?

http://diary.asuka.net/apache_mod_rewrite_tips と1の回答を参考にすると次のような感じでしょうか。

RewriteRule ^([0-9]+)/([0-9]+)/([^_]+)_(.+)\.html?$ $1/$2/$3-$4.html [N]
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ