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

mod_rewriteでURLの転送をやってるんですが、先頭がクエスチョンマークのURLを転送できずに困っています。

普通に考えて、
xxxx.com/?yyyy=zzzz を
xxxx.com/index.php?yyyy=zzzz に転送するなら、

RewriteRule ^\?yyyy=zzzz index.php?yyyy=zzzz [L]

で良いと思うのですが、転送されません。(.httaccessはxxxx.com/に設置)

?を任意の位置文字として認識できないかと考え、

RewriteRule ^.yyyy=zzzz index.php?yyyy=zzzz [L]

ともしてみましたが、?には反応しません。(他の文字なら転送される)
解決策をご教授下さい。


●質問者: hhashimo
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ぱこち
●100ポイント ベストアンサー

URL の「?」以降の文字列は、RewriteRule のパターンが適用される対象に含まれません。


単純な転送だけをするなら、以下のように記述するだけで「?」以降の文字も自動的に付加されると思います。

RewriteRule ^$ /index.php [L]

付加されなかったら、このように記述してみて下さい。

RewriteRule ^$ /index.php?%{QUERY_STRING} [L]

「?」以降の文字をマッチさせたい場合は、RewriteCond を使ってみて下さい。

RewriteCond %{QUERY_STRING} 【正規表現】
RewriteRule .* index.php [L]
◎質問者からの返答

ありがとうございます!お陰様で解決しました。

なるほど、全て納得です。

正確には、パラメータを変更した上での転送でしたので、3つ目のご回答のように、RewriteCond で条件設定した上で転送しました。

関連質問

●質問をもっと探す●



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