【リダイレクト】URLへのパラメータ付加。


お世話になります。
http://example.jp/aaa のアドレスにアクセスがあった場合、 http://example.jp/aaa?id=1 という特定のページに飛ばしたく

Redirect /aaa http://example.jp/aaa?id=1

としたのですが、ループしてしまいます。
http://example.jp/aaa/example.html や、http://example.jp/aaa/example.html などにはリダイレクトさせず
http://example.jp/aaa へのアクセスのみにパラメータを追加したい場合、どのように書けば良いでしょうか?

よろしくお願い致します。(_ _)

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/02/01 00:28:35
  • 終了:2012/02/08 00:30:03

回答(3件)

id:oil999 No.1

oil999回答回数1728ベストアンサー獲得回数3202012/02/01 00:33:14

ポイント67pt

以下のように指定してみてください。

Redirect /aaa$ http://example.jp/aaa?id=1
id:y-kawaz No.2

y-kawaz回答回数1421ベストアンサー獲得回数2262012/02/01 00:55:37

ポイント67pt

こんな感じでしょうか。

RewriteEngine on
RewriteCond %{QUERY_STRING} !id=1
RewriteRule ^/aaa$ /aaa?id=1 [R]

同じURLにパラメータを付与するだけなので単純にリダイレクトするとどうしても無限ループになってしまいます。
それを防ぐ為にクエリにid=1が含まれない場合という条件を付けてリダイレクトしています。

id:windofjuly No.3

うぃんど回答回数2625ベストアンサー獲得回数11492012/02/01 01:00:52

ポイント66pt

転送先がパラメータ付(?id=1)になってるので、
RewriteRule で転送するほうが良いでしょう

RewriteEngine on
RewriteRule ^/aaa$ http://example.jp/aaa?id=1 [R=301,L]
  • id:pocon
    ありがとうございます。
    vhost.confに直接記述しているのが悪いのか、ご教示いただいたrewriteでパラメータが付加されませんでした。

    Redirect ^/aaa$ http://example.jp/aaa?id=1

    でもやってみましたが、変化しなかったので

    RedirectMatch ^/aaa$ http://example.jp/aaa?id=1

    としましたら、今度はまたループしてしまいました。(^_^;
  • id:rouge_2008
    リダイレクト先の「http://example.jp/aaa?id=1」が該当するような設定を他にしていませんか?
    vhost.confだけでなく、もし利用していれば.htaccessも確認してみてください。

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

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

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

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