- 締切済み
.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使用可能です。 改善策をお教えいただければ幸いです。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- 123isao
- ベストアンサー率54% (186/341)
^$がおかしいような気がします。 ^は行頭、$は行末ですが間に何もないので*を入れたらいいかもしれません。
- php504
- ベストアンサー率42% (926/2160)
.htaccessは使えてもmod_rewriteが使えないという可能性もありますね。 サーバの管理者に問い合わせてみては。
お礼
サーバの公式サイトにmod_rewriteは使用可とありました。 そうかもしれないと思ったのですが…、もう少しがんばります。ありがとうございました。
- 123isao
- ベストアンサー率54% (186/341)
多分無限ループになっていると思います。(500番台エラー?) DoCoMoの場合だと /i/index.xhtmlのディレクトリに行っても 再びユーザーエージェントで判別していて /i/i/index.xhtmlのディレクトリに飛ばされて そこでも判別さらに・・・。 /i/と/s/と/a/のディレクトリにRewriteEngine Offの.htaccessを置けばそのディレクトリで判別されないと思います。 #2の方が書いているログというのはapachの生ログです。 デフォルトだとaccess_logやerror_logという名前になります。 error_logを見ると原因が分かることがあります。 レンタルサーバだと見れない場合があります。
お礼
ありがとうございます。 エラー番号が500だったので、教えていただいた方法を試してみたのですが、状況は変わらずでした。 また、ログについてもありがとうございます。 apachの生ログは入手出来たのですが、error_logはなく、access_logのみでした。 access_logをApacheLogViewerで解析してみたのですが、エラーログは分かるものの、ここから原因を探る方法が分からないでいます。 あわせて、この後も調べてみます。 またお教えいただければ幸いです、本当にありがとうございます。
- php504
- ベストアンサー率42% (926/2160)
サーバのログとかは見られないんでしょうかね エラーログが見られれば詳しいエラーの内容がわかるんですが Windowsで作成してLinuxに転送なら改行コードでエラーの可能性もありますね
補足
ありがとうございます。 サーバのログというのは、アップロード時のものでしょうか? MAC、Fetchを使用、サーバはLinuxで、確認したところエラーは出ていないようでした。 また、改行コードはLF、関係ないかもしれないですが、文字コードS-JIF、ASCIIでのアップロードをしています。 なにか気になる点がございましたら、お教えいただければ幸いです。
>意味を把握して使用していない ならば意味を把握すべき http://httpd.apache.org/docs/2.2/howto/htaccess.html
お礼
ありがとうございます、理解しながら使用するというのがそもそも間違いでしたね。 参考サイトもありがとうございます、併せて勉強いたします。
お礼
ありがとうございます、試してみました。 ですが、やはり状況は変わらずでした…。 いろいろ試していたのですが、 /a/、/i/、/s/ フォルダ内に「RewriteEngine Off」のみの.htaccessを入れ、 上記の振り分けを書いた.htaccessを入れないという状態でも、500サーバーエラーが出ていました。 こちらの.htaccessは記述間違いというのがないように思えるので、一度サーバ元へ連絡をしてみようかと思います。 もし早計でしたら、お教えいただければ幸いです。 本当にありがとうございます。