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

.htaccessによって、PCと携帯端末を振り分けようとしています。

http://d.hatena.ne.jp/ALMIC/20060727

こちらのURLを参考にまずは以下を付け加えて、
docomoから動作確認してみましたが全く機能しません。


RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ http://example.com/a/test.cgi [R]


そこでこちらを参考に、
http://labs.vone.jp/2007/07/17/htaccess/

1行目のOptions FollowSymLinksを追加してみましたが、
今度は「HTTP エラー 403 - アクセス不可」となり、PC、携帯からもアクセスが不可能となりました。

どこに問題があるか教えてください。お願いします。

●質問者: tontonpokopoko
●カテゴリ:ウェブ制作
✍キーワード:.htaccess 403 DoCoMo HTTP ON
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● b-wind
●19ポイント

コード的には問題なさそうなので、お使いの Web サーバーが mod_rewrite が使用可能かどうかを確認してください。

単にモジュールが使えないだけに見えます。


1行目のOptions FollowSymLinksを追加してみましたが、

今度は「HTTP エラー 403 - アクセス不可」となり、PC、携帯からもアクセスが不可能となりました。

こちらは該当の設定が許可されていないのでしょう。

特に mod_rewrite の動作には関係ありません。

◎質問者からの返答

回答をありがとうございます。

サーバはxreaで、mod_rewriteは使えるようです。

(ただ設定に問題があるのでしょうか・・)

試しに違うサーバ(マイティ)でも設置してみましたが、

まったく同じ現象が起きてしまいました。

何か単純なミスをしているような気がするのですが・・


2 ● nandedarou
●100ポイント ベストアンサー
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} .*DoCoMo.*
RewriteRule ^$ http://example.com/a/test.cgi [R,L]

として見て下さい。

解説します。

+をつけないと、この.htaccessより上位のレベルでこのディレクトリに対して設定されている内容が解除されてしまいます。

http://59.106.2.6/manual/mod/core.html#options

.*DoCoMo.*は、DoCoMoの前後に何か文字があってもいいってことです。

無くてもいいのかも知れませんが、念の為付けてみて下さい。

Lは、リダイレクトの後、終了するってことです。マニュアルでそうしたほうがいいって書いてあります。

http://www.net-newbie.com/trans/mod_rewrite.html

読みたい場合は、「redirect|R」をこのページ内で検索して、その下の「注意」を読んで下さい。


3 ● tezcello
●100ポイント

実際のディレクトリ構成が分からないので、FollowSymLinks が必要なのかどうかは分りません。

(Webサーバの設定にもよりますし...)

403エラーとの事ですから、リライト動作そのものはできているような気がしますが...

http://www.studyinghttp.net/status_code#Code403


ログには何か残っていませんか?(予定通りの動作をしていないときは、ログを調べるのが近道です)

Webサーバのログを調べてみてはどうでしょう。

できれば、rewrite のログも?> http://www.net-newbie.com/trans/mod_rewrite.html#RewriteLog

なぜアクセスが拒否されたかがわかれば、解決方法がわかると思います。


> docomoから動作確認してみましたが全く機能しません。

こちらも、rewrite のログをとってみれば原因がつかめるのでは?

◎質問者からの返答

回答をありがとうございます。

もっとものことだと思うのですが、

個別ログの詳細を調べたことがなく、また調べ方も知らないのです。

簡単なものではないでしょうから、いずれ違うタイトルで相談させていただきます。

(もし簡単な方法なら教えていただきたいですが・・)


4 ● nandedarou
●18ポイント

補足

前回の私の回答でダメなら、次のように、^$の間に/を入れてみて下さい。

RewriteRule ^/$ http://example.com/a/test.cgi [R,L]
◎質問者からの返答

いろいろとありがとうございます。

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} .*DoCoMo.*

RewriteRule ^/$ http://example.com/a/test.cgi [R,L]

前回の回答、そして上記の「/」を入れて動作確認していますが、

希望のページにはドコモから飛べません。

(補足 403エラーは解除されましたが)

.htaccessの設置がおかしいのではと思い、最初の状態、

Options +FollowSymLinks の「+」をとり、

下記のエラーページを作り確認したところ正常にジャンプしました。

ErrorDocument 403 http://b.html

「単にモジュールが使えない」かと今確認している途中です。

サーバは"xrea"


5 ● tezcello
●18ポイント

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

>>ただ、これらすべての機能や柔軟性が、欠点や複雑さの元にもなって います。なので、このモジュール全体を一日程度で覚えようなどとは 思わないほうがいいでしょう。<<

なんてサイトに書かれている位なので、一歩一歩チェックしてみましょう。

自宅サーバでなければ、詳細のログを得るのは難しいかも知れませんね。

(Xrea ではApacheのエラーログは取れないみたい...、httpd.conf も変更できないからrewriteのログも不可なようで...)


サーバは、Xrea という事なので、「ホームディレクトリでは」有効になっているはずです。

.htaccess を置いているディレクトリの上位で FileInfo の上書を不可にしていなければですが。大丈夫ですか?

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteEng...


RewriteEngine On
RewriteRule ^(.*)$ test.txt

だけ書いた .htaccess とテスト用のページ test.txt をホームディレクトリの public_html に置いて、ブラウザからそのディレクトリにアクセスしてみます。(例えば、http://www.hoge.com/)

正常に動いているのなら、http://www.hoge.com/ でも、http://www.hoge.com/index.html でも test.txt が表示されるはずです。


これがOKなら、後は条件やリダイレクト先を記述すればいいはず。

◎質問者からの返答

tezcelloさん回答をありがとうございます。

上記のコードで試したところテスト先にジャンプしました。

懸念のとおりディレクトリの上位にすでに”.htaccess”を置いていたために、

正常に動作しなかったようです。

今回のテストは上位の.htaccessに入れ替えて実行したのですが、

そのまま上位の.htaccessを残したまま下位で機能させるにはどうすればいいのでしょうか?

現状では”ディレクトリの上位でFileInfo の上書を不可”にしてしまっているということなのでしょうか?

自分でも今から調べて見ますが、いいアドバイスがあったらまたお願いいたします。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



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