• 締切済み

.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をつけるにはどうしたらいいのか困っております。 初心者なのでできたら簡単に教えていただけると幸いです。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

RewriteCond %{QUERY_STRING} ^$ だからでは?

masa-25
質問者

お礼

ご指摘ありがとうございます。 いろいろ書き換えていじっているのですが どうもうまく行っていません・・。

関連する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について

    ドコモの携帯電話からアクセスしてきた際に 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で一気に付与することは可能なのでしょうか? 初心者なので??と思うことを書いているかもしれませんが その点はどうかご容赦ください。

  • htaccess リダイレクトの記述方法

    「wwwなし http://www.abc.net/」から 「wwwありに統一 sslありのhttps://www.abc.net/」にリダイレクトしたいのですが、以下の記述で合っていますでしょうか。よろしくお願いします。 Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^abc.net RewriteRule ^(.*)$ http://www.abc.net/$1 [R=301,L] RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    • ベストアンサー
    • HTML
  • htaccessのマッチが失敗します

    下記のように書いていますがうまく動作しません。 どのように手直しすればうまくいきますでしょうか??? hostname/abc_abc_ab_abc.html というテストを作ってみたのですが、本来であれば、abc3.cgiへ渡されるはずなのですが、全て、all.cgiへ渡されてしまいます。 お分かりになる方、宜しくお願い致します。 RewriteEngine on RewriteBase / ##リクエストURI中に、abcという文字列が3回以上ならabc3.cgiを動作させる RewriteCond %{Request_URI} "^(abc){3,}$" [NC] RewriteRule ^(.+)$ abc3.cgi?$1 [L] ##リクエストURI中に、abcという文字列が1から2回ならabc12.cgiを動作させる RewriteCond %{Request_URI} "^(abc){1,2}$" [NC] RewriteRule ^(.+)$ abc12.cgi?$1 [L] #どれにもマッチしない場合、all.cgiを動作させる。 RewriteRule ^(.+)$ all.cgi?$1 [L]

    • ベストアンサー
    • Perl
  • htaccessによる端末ごとによる振り分け

    htaccessによる振り分けに関しまして、 PC:/ スマートフォン:/sp/ モバイル:/m/ 端末ごとに振り分けを行いたいです。 ■PC では、/sp/フォルダ、/m/フォルダにアクセスしても、 URLから、各フォルダが除かれ、PCファイルが読み込まれます。 ■スマートフォンでは、/sp/フォルダが入っていないときは、 問題なく、URLに/sp/が加わり、スマートフォンサイトが読み込まれます。 ですが、http://○○.com/m/index.php等でアクセスを行うと、 http://○○.com/sp/m/index.phpのようなURLになります。 ※これは、http://○○.com/sp/index.phpへアクセスしてほしいです。 ■モバイルでは、/m/フォルダが入っていないときは、 問題なく、URLに/m/が加わり、モバイルサイトが読み込まれます。 ですが、http://○○.com/sp/index.php等でアクセスを行うと、 http://○○.com/m/sp/index.phpのようなURLになります。 ※これは、http://○○.com/m/index.phpへアクセスしてほしいです。 ■モバイル・スマートフォンのリダイレクトに関しまして、 改善するためのご意見をお願い致します。 よろしくお願い致します。 ■htaccessの中身です。 RewriteEngine on #スマートフォン RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R] #RewriteRule ^(.*)$ sp/ [R] RewriteBase / #モバイル RewriteCond %{REQUEST_URI} !/m/ RewriteCond %{HTTP_USER_AGENT} (DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^(.*)$ m/$1 [R] #RewriteRule ^(.*)$ m/ [R] RewriteBase / #PC RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R] #RewriteRule ^sp/(.*)$ / [R] RewriteBase / #PC RewriteCond %{REQUEST_URI} /m/ RewriteCond %{HTTP_USER_AGENT} !(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^m/(.*)$ $1 [R] #RewriteRule ^m/(.*)$ / [R] RewriteBase /

  • .htaccessファイル設置エラーの原因

    .htaccessファイルの設置エラーの原因についてお尋ねします。 下記の内容の.htaccessを置きたいのですが、最初の4行の ErrorDocumenet だけを入れてアップロードしていたときは問題なかったのですが、 Options +FollowSymLinksを3つ足すと、 500 Internal Server Error になりホームページが表示できなくなります。 もともと他のサーバー(CPI)で使って問題なかった内容なので、文法エラー などではないと思うのですが。 原因として可能性のあるものは何でしょうか。 ------------------------------------------------- ErrorDocument 401 http://XXX.jp/error401.html ErrorDocument 404 http://XXX.jp/error404.html ErrorDocument 403 http://XXX.jp/error403.html ErrorDocument 500 http://XXX.jp/error500.html Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^XXX.jp RewriteRule ^(.*)$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.htm RewriteRule ^(.*)index.htm$ http://www.XXX.jp/$1 [R=301,L] ------------------------------------------------- Webサーバーはさくらインターネット、Apache/1.3.42 .htaccessファイルを置いているのは、ドメイン直下です。

  • 条件で振り分けるhtaccess

    困っています。 今、スマートフォン用のサイトを作成しています。htaccessで、 # Enable RewriteEngine. RewriteEngine On RewriteCond %{REQUEST_URI} !^/sp/.*$ RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC] RewriteCond %{HTTP_COOKIE} !viewmode=pc RewriteRule ^(.*)$ /sp/$1 [R=301,L] という条件で振り分けているのですが、 これに、 「拡張子にgifやjpgがついていた場合は、spには転送しない」とか 「拡張子にgifやjpgがついてなかった場合は、spに転送する」 と言うような条件を追加したいと思っていますが、記述が分からず苦しい状態です。 急いでおり改めて勉強している時間がありません。 どなたかご教示いただけるととても助かります。。

  • リダイレクトのhtaccessを置くと403エラー

    perlで書いたCGIファイルがあるのですが、スマホ用のリダイレクトhtaccessファイルをトップディレクトリに置いた所、CGIのページが403エラーになってしまいました。 .htaccessファイルを外すと正常に表示するので、原因は.htaccessなのですが、理由が思い当たりません。 CGIのソースは出せないですが、お問い合せフォーム用のCGIです。 何かお気づきの点がありましたら助言お願い致します。 ● .htaccess(トップディレクトリに設置) <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase / </IfModule> ● ディレクトリ構造 /index.html・・・トップページ /.htaccess・・・上記内容 /contact/all/index.cgi・・・403エラーになるCGI /contact/all/.htaccess・・・「Options ExecCGI」のみ記述 /sp/・・・スマホ用のリダイレクト先ディレクトリ(以下略)

  • htaccess wwwがあるのとないので同じページを表示させることはできますか?

    現在●●.comと■■.comの2つのアドレスを使用していて、 ■■.comをマルチドメインにするため下記をhtaccessに記載しています。 www. ■■.comを追加子ドメインにして ■■.comと同じページを見られるようにするにはどうすればよいでしょうか? # Enable RewriteEngine. RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} (■■.com) RewriteCond %{REQUEST_URI} !^/(■■.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L]

    • ベストアンサー
    • HTML
  • .htaccessのRewriteRuleエラー

    PHPのフレームワークを使って、サイトを作成しているのですが、 .htaccessの設定でつまずいております。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php 上記のコードはフレームワークを使う時の お決まりのようなコードなのだと思うのですが、 これはコピペして問題無く動作しております。 ※このコードは下記ページのものをコピペしました。 http://www.yiiframework.com/doc/guide/1.1/ja/topics.url#sec-7 しかし、この既存の.htaccessファイルに下記の通り、 www無しのアクセスをwww有りのurlに転送させるための コードを追加すると、サイト内のリンクが切れてしまいます。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^mydomain.com //これを追加した RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] //これを追加した RewriteRule . index.php 記述方法が誤っているのだと思うのですが、どのように記述すれば、 正常に動くのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう