• 締切済み

リダイレクトの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/・・・スマホ用のリダイレクト先ディレクトリ(以下略)

  • umioyo
  • お礼率78% (172/220)
  • Perl
  • 回答数1
  • ありがとう数4

みんなの回答

回答No.1

エラーログには何と出ていますか?

umioyo
質問者

お礼

すいません。自己解決しました。 403が出るディレクトリの.htaccessを Satisfy any order allow,deny allow from all Options +ExecCGI AddHandler cgi-script .pl .cgi としたところ、正常表示できました。 次回、同じようなことがありましたら今度はエラーログを参照したいと思います。 ありがとうございました。

関連するQ&A

  • htaccessの設定について

    .htaccessについての質問です。 今までメインディレクトリ内に index.html aaa.html の2つがあるとします。 今回、新たにサブディレクトリを作って(sp/) その中に index.html をスマホ用閲覧の為に新たに作りました。 メインディレクトリ内に.htaccessを設置して スマートフォンからindex.htmlにアクセスすると自動で/sp/index.htmlに リダイレクトすることができました。 ただしサブディレクトリ内の sp/index.htmlの中にあるリンク(リンク先はメインディレクトリのaaa.html) にリンクすると/sp/aaa.htmlに切り替わってしまい、当然そのようなページがないので 「ファイルが見つかりません」と表示されてしまいます。 サブディレクトリーからメインディレクトリーにリンクさせる場合、/sp/を付加させないためにはどのように設定したらいいのか教えてくだい。 よろしくお願いいたします。 なお、今のメインディレクトリのhtaccessの記述は DirectoryIndex frontpage.php headpage.shtml index.html RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase / です。 よろしくお願いいたします。

  • 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 の意味を教えて頂けないでしょうか? RewriteEngine On <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} /hotel/all/ RewriteCond %{REQUEST_URI} !/stay/hotel/all/ RewriteCond %{REQUEST_URI} !/sp/stay/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android.+Mobile|Windows\ Phone) [OR] RewriteCond %{HTTP_USER_AGENT} (\ N-08D\ |\ N-06D\ |\ SC-01C\ |\ SC-02D\ |\ SH-06F\ |\ SH-08E\ |\ SHT22\ |\ SHT21\ |\ SMT-i9100\ |\ SM-T530\ |\ Nexus\ 7\ ) RewriteRule ^(.*)$ /sp/stay/all.html [R,L] RewriteBase / RewriteCond %{REQUEST_URI} /stay/hotel/all/ RewriteCond %{REQUEST_URI} !/sp/stay/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android.+Mobile|Windows\ Phone) [OR] RewriteCond %{HTTP_USER_AGENT} (\ N-08D\ |\ N-06D\ |\ SC-01C\ |\ SC-02D\ |\ SH-06F\ |\ SH-08E\ |\ SHT22\ |\ SHT21\ |\ SMT-i9100\ |\ SM-T530\ |\ Nexus\ 7\ ) RewriteRule ^(.*)$ /sp/stay/all.html [R,L] RewriteBase / RewriteCond %{REQUEST_URI} /hotel/all/ RewriteCond %{REQUEST_URI} !/stay/hotel/all/ RewriteCond %{REQUEST_URI} !/stay/hotel/dream/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android.+Mobile|Windows\ Phone) RewriteCond %{HTTP_USER_AGENT} !(\ N-08D\ |\ N-06D\ |\ SC-01C\ |\ SC-02D\ |\ SH-06F\ |\ SH-08E\ |\ SHT22\ |\ SHT21\ |\ SMT-i9100\ |\ SM-T530\ |\ Nexus\ 7\ ) RewriteRule ^(.*)$ /stay/hotel/all/index.php [R,L] RewriteBase / RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android.+Mobile|Windows\ Phone) [OR] RewriteCond %{HTTP_USER_AGENT} (\ N-08D\ |\ N-06D\ |\ SC-01C\ |\ SC-02D\ |\ SH-06F\ |\ SH-08E\ |\ SHT22\ |\ SHT21\ |\ SMT-i9100\ |\ SM-T530\ |\ Nexus\ 7\ ) RewriteRule ^(.*)$ sp/$1 [R,L] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android.+Mobile|Windows\ Phone) RewriteCond %{HTTP_USER_AGENT} !(\ N-08D\ |\ N-06D\ |\ SC-01C\ |\ SC-02D\ |\ SH-06F\ |\ SH-08E\ |\ SHT22\ |\ SHT21\ |\ SMT-i9100\ |\ SM-T530\ |\ Nexus\ 7\ ) RewriteRule ^sp/(.*)$ $1 [R,L] RewriteBase / </IfModule> <IfModule mod_rewrite.c> RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ /m/ [R,L] </IfModule>

  • .htaccessでリダイレクトしたいです@さくら

    .htaccessでwwwなしのサイトにリダイレクトをかけたいのですが、うまくいきません。 色んな方法がサイトにありそれを試しているのですが、 一瞬テストでうまくいったと思ったのですが、それ以降うまくいかなくなってしまいました。 使用しているプロバイダはさくらインターネットです。 今までに試したコマンドは下記です。 --------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.hoge\.com)(:80)? RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] </IfModule> --------------------------- RewriteEngine on RewriteCond %{HTTP_HOST} www¥.hoge¥.com RewriteRule .* http://hoge.com%{REQUEST_URI} [R=301,L] --------------------------- .htaccess を設置しているディレクトリは /home/hoge/www になります。 ぜひ教えていただけないでしょうか。よろしくお願いいたします。 また、.htaccessは変更してどのくらいで反映されるのか、補足的に教えていただけると助かります。 以上、よろしくお願いいたします。

  • htaccessでリダイレクトが効かない

    スマーフォンからWEBへアクセスがあった場合、htaccessで/m/へリダイレクトしているのですが、 検索エンジンアプリ(Google/Yahoo)で検索した結果をクリックすると、 リダイレクトが効かず、PCページのトップページが表示される、 あるいは該当のPCのページが表示されるという問題に直面して困っています。 ただ、iPhoneのSafariの検索窓から検索した結果をクリックすると、 問題なくリダイレクトされます。 RewriteEngine On RewriteCond %{REQUEST_URI} !^/m/.*$ RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC] RewriteCond %{REQUEST_FILENAME} \.(html)$ [NC] RewriteCond %{HTTP_USER_AGENT} !iPad [NC] RewriteCond %{HTTP_COOKIE} !viewmode=pc RewriteCond %{QUERY_STRING} !viewmode=pc RewriteRule ^$ http:\/\/URLを記入しています/m/ [R=301,L] 上記の書き方の何かがおかしいのでしょうか? おわかりになる方いらっしゃいましたら教えていただけませんか。

    • 締切済み
    • CSS
  • httpからhttpsへのリダイレクト方法

    すいません、よくわかりませんので教えて下さい。.htaccessに記述してhttpにアクセス来たものをhttpsへリダイレクトしたいです。 今の状況は下記です。 AddHandler application/x-httpd-php53 .php RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(sanetsu.com) RewriteCond %{REQUEST_URI} !^/(sanetsu.com)/ RewriteRule ^(.*)$ http://www.sanetsu.com/$1 [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(www.burikama.com) RewriteCond %{REQUEST_URI} !^/(www.burikama.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(burikama.com) RewriteCond %{REQUEST_URI} !^/(burikama.com)/ RewriteRule ^(.*)$ http://www.burikama.com/$1 [L] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress すいません、上記の記述をどのように変更したらhttpsへリダイレクトさせることができますでしょうか?前任のweb担当の方と連絡が付かないので教えていただけたらありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • .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が動きません。

    さくらインターネットで.htaccessが動きません。 .htaccessをさくらインターネットのレンタルサーバーに置いたところ上手く動いてくれません。 何がいけないのかご教授頂ければと思います。 http://www.systemania.biz/source/keitaihuriwake01.html このページで紹介されている 携帯とPCの振り分けなんですが、 # Options -Indexes # < IfModule mod_rewrite.c> # DoCoMo RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /mobi/ [R] # Softbank RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ /mobi/ [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ /mobi/ [R] RewriteCond %{HTTP_USER_AGENT} SoftBank RewriteRule ^$ /mobi/ [R] ~中略~ # PC Opera RewriteCond %{HTTP_USER_AGENT} Opera RewriteRule ^$ /pc/ [R] # Mac Safari RewriteCond %{HTTP_USER_AGENT} Safari RewriteRule ^$ /pc/ [R] # < /IfModule> 上記をそのまま設置した所、振り分けされませんでした。 Optionsを使う事が出来ないと知って、その部分を外したり、IndexIgnore * に代えてみたりしたのですが、全く動いてくれませんでした。 何が問題なのでしょうか? 初心者なので書き足りない情報があるかも知れませんが宜しくお願いします。

  • 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を初めて使用します。 利用法はサイトにきた人を携帯用と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が機能しているかどうかの確認の方法と、何か考えられることがあれば教えてください。

専門家に質問してみよう