「.htaccess」について。


下記の(1)でアクセスされた場合、パラメータを全部削除して(2)の様に表示させるにはどうしたら良いでしょうか?

おそらくmode_rewriteを使うのだろうと思って、「.htaccess」へ(3)の通り記入したのですが、何も起こらず、パラメータがそのまま表示されてしまいます。


(1)http://hoge.com/?utm_source=yahoo&utm_medium=cpc&utm_campaign=cam

(2)http://hoge.com/

(3)
RewriteEngine On
RewriteBase /
RewriteRule ^\?utm.*$ [L]

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/02/25 08:49:47
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:Galapagos No.1

回答回数963ベストアンサー獲得回数89

下記のように指定してみて下さい。

RewriteEngine On
RewriteRule \/\?.*$ / [L]
id:tetlis

ダメです。

2011/02/25 08:47:19
id:pmakino No.2

回答回数358ベストアンサー獲得回数30

mod_rewrite は通常サーバ内でパスの読み替えをするので、ブラウザのアドレスバーに表示される URL は変わりません。

ブラウザのアドレスバーに表示されるものを変えたい場合は、サーバ内で読み替えるのではなく、転送させる必要があります。

転送させるには、[L] の部分を [R=301,L] にすれば良いです。

mod_rewrite サンプル集/楽の「リダイレクト時のブラウザのURL欄」等参考にしてみてください。

id:tetlis

ダメでした。

自分で調べるのを続けたところ、そのままではパラメータは置換の対象とならず、

RewriteCond %{QUERY_STRING} というのを使う必要がありました。

2011/02/25 08:49:25

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

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

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

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

回答リクエストを送信したユーザーはいません