mod rewriteについて質問させて頂きます。


[URL]modules/investing/index.php?page=「値1」article&storyid=「値2」1753
上記のようなアドレスにきたURLを
[URL]farticles/「値1」article/「値2」1753
に [R=301,L] したいと思っています。

この逆のパターンはよく見るのですが、上記方法がみつからず。
色々試してみたのですが、パラメータに添字がついてきたりして値のみを取り出せません。

お知恵を御借りできませんでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/06/02 03:34:00
  • 終了:2009/06/02 20:10:57

ベストアンサー

id:sphire No.2

sphire回答回数115ベストアンサー獲得回数122009/06/02 07:13:11

ポイント50pt

参考 http://blog.ozacc.com/archives/001734.html

RewriteCond %{QUERY_STRING} page=(.*)article&storyid=(.*1753)
RewriteRule ^modules/investing/index\.php /farticles/%1article/%2 [R=301,L]

これでいけてるような気が、、うまくいかなかったらごめんなさい

でも、index.phpでリダイレクト処理する方がスマートな気がします。

if (preg_match('/^(.*?)articles$/', $_GET['page'], $p1) && preg_match('/^(.*?)1753$/', $_GET['storyid'], $p2)) {
  $url = sprintf("http://www.example.com/farticles/%sarticle/%s1753", $p1[1], $p2[1]);
  header('Location: ' . $url);
  exit;
}
id:kichitaka

ありがとうございます。助かりました。

たしかに、index.phpでやったほうがいいのですが今回は事情が有りphpには手を入れる事ができない状況でした。

また機会があれば使いたいと思います。ありがとうございました。

2009/06/02 20:10:21

その他の回答(1件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/06/02 05:32:32

ポイント50pt

farticles は /modules/investing/ からの相対パス指定ではなく

ルートからの絶対パス指定にする必要があります。

RewriteEngine on
RewriteBase /
RewriteRule ^/modules/investing/index.php?page=(.+article)&storyid=(.+1753)$ /farticles/$1/$2 [R=301,L]

Apache URL Rewriting Guide

id:kichitaka

ありがとうございます。助かりました。無事動きました。

2009/06/02 20:09:37
id:sphire No.2

sphire回答回数115ベストアンサー獲得回数122009/06/02 07:13:11ここでベストアンサー

ポイント50pt

参考 http://blog.ozacc.com/archives/001734.html

RewriteCond %{QUERY_STRING} page=(.*)article&storyid=(.*1753)
RewriteRule ^modules/investing/index\.php /farticles/%1article/%2 [R=301,L]

これでいけてるような気が、、うまくいかなかったらごめんなさい

でも、index.phpでリダイレクト処理する方がスマートな気がします。

if (preg_match('/^(.*?)articles$/', $_GET['page'], $p1) && preg_match('/^(.*?)1753$/', $_GET['storyid'], $p2)) {
  $url = sprintf("http://www.example.com/farticles/%sarticle/%s1753", $p1[1], $p2[1]);
  header('Location: ' . $url);
  exit;
}
id:kichitaka

ありがとうございます。助かりました。

たしかに、index.phpでやったほうがいいのですが今回は事情が有りphpには手を入れる事ができない状況でした。

また機会があれば使いたいと思います。ありがとうございました。

2009/06/02 20:10:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません