.htaccessでドコモの携帯電話からのアクセス時にURLに?guid=ONを自動的に付与する方法

このQ&Aのポイント
  • ドコモの携帯電話からのアクセス時にURLに?guid=ONを自動的に付与するためには、.htaccessファイルに以下のように記述する必要があります。
  • また、ディレクトリの下にあるperlやPHPで記述されたcgiファイルにも一括で付与することが可能です。
  • 初心者の方でも簡単に実装できるので、安心して試してみてください。
回答を見る
  • ベストアンサー

.htaccessについて

ドコモの携帯電話からアクセスしてきた際に URLに?guid=ONを自動的に付与させたいんですが .htaccessに以下のように記述しても付与できていません。 どうしたらいいのでしょうか? RewriteCond %{HTTP_USER_AGENT} ^DoCoMo.* RewriteCond %{QUERY_STRING} !guid=ON RewriteCond %{QUERY_STRING} ^(.+)$ RewriteRule ^(.*)$ $1?%1&guid=ON [R=302,L] またディレクトリの下にあるperlで記述されたcgiやPHPにも .htaccessで一気に付与することは可能なのでしょうか? 初心者なので??と思うことを書いているかもしれませんが その点はどうかご容赦ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ky072
  • ベストアンサー率60% (85/140)
回答No.1

QUERY_STRING が空の場合を想定していないのではありませんか。 現状の設定でも http://example.com/?X のように 1文字以上の QUERY_STRING を附加してアクセスをすれば 正しく動作するような気がします。 QUERY_STRING があれば、「&guid=ON」を追加して、 QUERY_STRING がなければ、「?guid=ON」を追加するイメージです。 RewriteCond %{HTTP_USER_AGENT} ^DoCoMo RewriteCond %{QUERY_STRING} !guid=ON RewriteCond %{QUERY_STRING} ^(.+) RewriteRule ^(.*)$ $1?%1&guid=ON [R=302,L] RewriteCond %{HTTP_USER_AGENT} ^DoCoMo RewriteCond %{QUERY_STRING} ^$ RewriteRule ^(.*)$ $1?guid=ON [R=302,L] なお、不要だとは思いますが、厳密な対応が求められる場合、 以下のような点を工夫する必要があります。 ◇現状、QUERY_STRING に「noguid=ON」や「guid=ONOFF」のような   文字列があると正しく動作しません。 ◇「guid=OFF」の指定があっても削除されません。 また、特定のファイル形式のみ対応する場合、 以下のように REQUEST_URI に対して条件を追加すると良いです。 ◇*.cgi と *.php に限定 RewriteCond %{REQUEST_URI} \.(cgi|php)$ [NC] ◇画像等を除外 RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|swf|pdf|ico)$ [NC]

関連するQ&A

  • .htaccessによるリダイレクト

    .htaccessにおいて画像は除くCGIやPHPなどもサイト内のすべてに iモードID取得のための?guid=onを付与するために以下のように記述しましたところ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo.* RewriteCond %{QUERY_STRING} ^$ RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|swf|pdf|ico)$ [NC] RewriteRule ^(.*)$ http://homepage.jp/$1?guid=ON [R=302,L] 一部CGIにおいてguid=onがURLの最後に付与されていませんでした。 調べてみたところ http://homepage.jp/○○○.cgiや http://homepage.jp/index.htmlのような というURLにはURLの最後にきちんとguid=onが付与されているものの http://homepage.jp/○○○cgi?id=○○○や http://homepage.jp/○○○cgi&○○&○○ のようなURLにはguid=onが付与されていないことが分かり、 これらにもguid=onをつけるには どのように記述したらいいのか困っております。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • .htaccessにおける記述について

    .htaccessにおいて画像は除くCGIやPHPなども含むサイト内のすべてに iモードID取得のための?guid=onを付与するために以下のように記述しましたところ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo.* RewriteCond %{QUERY_STRING} ^$ RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|swf|pdf|ico)$ [NC] RewriteRule ^(.*)$ http://homepage.jp/$1?guid=ON [R=302,L] 一部CGIにおいてguid=onがURLの最後に付与されていませんでした。 調べてみたところ http://homepage.jp/○○○.cgiや http://homepage.jp/index.htmlのような というURLにはURLの最後にきちんとguid=onが付与されているものの http://homepage.jp/○○○cgi?id=○○○や http://homepage.jp/○○○cgi&○○&○○ のようなURLにはguid=onが付与されていないことが分かり、 これらにもguid=onをつけるにはどうしたらいいのか困っております。 初心者なのでできたら簡単に教えていただけると幸いです。

  • .htaccessが機能していない?

    .htaccessを初めて使用します。 利用法はサイトにきた人を携帯用とPC用に振り分けるためです。 ファイル構成は以下のようにしました。 www ├.htaccess ├index.html(PC用) └mobile─index.php(携帯用) 環境 さくらインターネット/スタンダードプラン 記述 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /mobile/ [R] RewriteCond %{HTTP_USER_AGENT} KDDI [OR] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /mobile/ [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [OR] RewriteCond %{HTTP_USER_AGENT} MOT- RewriteRule ^$ /mobile/ [R] しかし全く機能せず、全てPC用のトップにとんでしまいます。 .htaccessが機能しているかも怪しく、.htaccessに日本語を入力してもエラーすら出ません。 エラーも出ないので何が起きているかもわかりません。 .htaccessが機能しているかどうかの確認の方法と、何か考えられることがあれば教えてください。

  • htaccessについて

    HPサイトを携帯・スマートフォンとPCで振り分けたいのですが、 htaccessがうまく機能してくれません。。 携帯でページを開いてもPC用のページが開きます。 RewriteEngine On
 RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #au 

RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #DoCoMo 

RewriteCond %{HTTP_USER_AGENT} SoftBank [NC]
RewriteRule ^$ http://あどれす /mobil/index.html[R] #SoftBank RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPhone RewriteCond %{HTTP_USER_AGENT} iPod [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPod RewriteCond %{HTTP_USER_AGENT} Android [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #Android 以上を記入したのですが、どうして出来ないのかわかりますでしょうか。 .htaccessはPCのindexと同じ階層です。 PCの階層にmobilのファイルがおいてあります。 よろしくお願いします

  • .htaccess の書き方

    以下の .htaccess では、http://hoge.jp への携帯からのアクセスを http://hoge.jp/mobile ディレクトリへ転送させていますが、これを、 http://m.hoge.jp へ転送するには、どう記述を変えれば良いのでしょうか? ちなみに、使用予定のレンタルサーバでは、サブドメインつきのリクエストで 所定のディレクトリへアクセスさせるには、自分で .htaccess を書く必要が あるとのことです。(設定画面で設定できません) PC・携帯からのhttp://hoge.jp へのアクセスを、それぞれ PC: http://www.hoge.jp (/www/) 携帯: http://m.hoge.jp (/m/) という具合に振分転送させたいのですが・・・。 -------------------------------------- #携帯振り分け Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !^/mobile RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} (J-PHONE|Vodafone|Softbank|MOT-) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (KDDI|UP\.Browser) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (PDXGW|DDIPOKET|WILLCOM) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} L-mode [NC] RewriteRule ^(.*)$ /mobile/$1 [R,L] #「www」ありに統一 RewriteCond %{HTTP_HOST} ^(hoge\.jp)(:80)? [NC] RewriteRule ^(.*)$ http://www.hoge.jp/$1 [R=301,L]

  • htaccessの書き方について お教えくださいませんか?

    新たにwordpress にてホームページを作成しようと思うのですが、そこでお教えいただきたいのが、 htaccessの書き方 をどうすればいいかお教えくださいませんか? 今まで、レンタルサーバーを借りて ホームページ運用をしていました。 その際、仮に http://www.aaaa.com/ がメインのページとして、 携帯用のサイトを http://www.aaaa.com/i/としていました。 そして、 htaccess を設置して、携帯から http://www.aaaa.com/ にアクセスがあった場合 http://www.aaaa.com/i/ に誘導するようにしておりました。 (今回携帯サイトは、ワードプレスで運用はしません。サーバーにiフォルダーを作成しhtmlを保存するだけです) (1)そのhtaccessの記述が 以下です。 RewriteEngine On # DoCoMo RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] # SoftBank RewriteCond %{HTTP_USER_AGENT} J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] # au RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] (2)また、ワードプレスにも最初から以下のhtaccessの記述があります。 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress ★この (1)と(2)を同じ場所に設置する場合、htaccessの記述を 足して書く必要が、あると思いますが、初心者でもあり どう書いていいのか わかりません。 どのように、記述すればよいのでしょうか? お知恵を拝借いただけたら 光栄です。

    • ベストアンサー
    • CGI
  • .htaccess による携帯からのアクセスの振り分け方について教えてください。

    お世話になります。 急遽すぐに解決しなくてはならなくて、困っています。 よろしくお願いいたします。 .htaccess による携帯からのアクセスの振り分け方について教えてください。 .htaccessに下記の通り記述しました。 ---------------------------------------------------------------- RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo [OR] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [OR] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /mobile/index.html [R] ---------------------------------------------------------------- こちらは問題なく動作するのですが、これですとPCで見た場合自動的にディレクトリ内の直下のindex.html に移動してしまいます。 PCで見た場合も別のファイルに移動させたいのですが、その場合どのように記述したらよいでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • .htaccessを使用した携帯端末の振り分けについて

    各キャリア毎に振り分けたいのですが、.htaccessを設置したところでサーバーエラーが起きて行き詰まってしまいました。 現状は下記の記述です。 サイトから見つけて、転送先URLを書き換えただけです。 ------------------------ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /i/index.xhtml [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ /s/index.html [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ /s/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /a/index.html [R] ------------------------------------ 意味を把握して使用していないので、問題点が分からない状態です。 サーバは.htaccess使用可能です。 改善策をお教えいただければ幸いです。

  • htaccess ユーザーエージェント 振り分け 

    htaccess でユーザーエージェント 振り分けを行いました。http://www.example.com/ 以下に htaccessを入れましたが、PCのSEO対策上問題があるでしょうか? RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.example.com/i/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} SoftBank RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.example.com/e/index.html [R]

    • ベストアンサー
    • HTML
  • .htaccessで携帯サイトとPCサイトの振り分けについて

    .htaccessで携帯サイトとPCサイトの振り分けについて お世話になります。 .htaccessで携帯サイトとPCサイトの振り分けで困っています。 現在、index.phpで携帯サイトとPCサイトの振り分けしています。この場合、PCサイトのトップページがindex.htmlではなく他の名前にしなくてはならないようで、現在はpc.htmlにしています。 どうにかpc.htmlではなく、index.htmlのまま携帯サイトとPCサイトの振り分けをしたいのです。 .htaccessであればできそうなので、いろいろと調べながら試したのですがうまくいきませんでした。 使用しているサーバーはさくらのレンタルサーバーで、ライトプランです。 mod_rewriteは入ってると記載してありました。.htaccessもOKなようです。 以下のように.htaccessファイルに記述して試しました。 例1) RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Up.Browser [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^DDIPOCKET [NC] RewriteRule ^$ abc.com/m/ [R] 例2) Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.abc.com/m/index.html [R] 素人ですので、できましたら記述全文教えていただけるとありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう