とっておきの手土産を教えて

.htaccessを使って振り分けをしたいのですが、ネットを参考に書いてもサーバーでエラーを起こして困っています。たぶんどこかが違うんだと思うんですが…

# .htaccess ここから

# 携帯とPCを判別
# 携帯はkeitaiフォルダに移動 PCはPCフォルダに移動

# Options -Indexes
# < IfModule mod_rewrite.c>

# Internet Explorer 6
RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; GTB6.6; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
RewriteRule ^$ /ie6-8/ [R]

# Internet Explorer 7
RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB6.6; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
RewriteRule ^$ /ie6-8/ [R]

# Internet Explorer 8
RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
RewriteRule ^$ /ie6-8/ [R]

# < /IfModule>

# .htaccess ここまで

と書いてます。テストはninjaのホームページスペースで行ってますが、本番は桜サーバーです。
新しく作ったページがHTML+CSS3なのでIE9を除きIEからのアクセスは同サーバー内のie6-8フォルダに飛ばしたいのです。このフォルダには、古いページを入れておきます。新しいページに非対応なブラウザは旧ページに誘導したいのです。
いっそのこと、「HTML5+CSS3非対応ブラウザからのアクセスは全員こちらへ」と命令できれば良いのですが、それは無理だと思うので個別指定でいこうと思ってます。

.htaccessでブラウザ毎にリダイヤルする方法を教えてください!

A 回答 (2件)

>万人が同じように見れてこそ、真のHTML/CSSというもの。



 違いますよ。HTMLは「万人が同じように情報を共有できる」ためのもです。
 「万人が同じように見」えるためには、PDF( http://ja.wikipedia.org/wiki/PDF )のように選りすぐれた仕様があります。
   ・・・ただし、正確には「万人が同じように【印刷して】見れる」ですが・・・
 そもそも、読み上げソフトや携帯端末、検索エンジンはどうすればよいのでしょう。

 したがって、「ハックすら考えなくてよい」のです。・・これすら邪道かもしれません。

HTML
↑ ネットワークで繫がっているすべての端末が情報を共有するために考え出されて
| その有益性が認められてここまで発展してきた。

PDF
  OSやブラウザ、フォントに依存せず、デザインしたものがまったく同じに利用でき
 るための仕様

 たとえばウェブ標準のHTML5で記述すると
<body>
 <header>
  見出しやこのページの目次、要約
 </header>
 <section>
  <hn>章見出し</hn>
  記事
   <section>
    <hn>項見出し</hn>
    記事
   </section>
 </section>
 <footer>
  文書の情報
 </footer>
</body>
 HTML4.01(XHTML1.0,XHTML1.1は基本的に同じ)は、<div class="header">とかになる。
・・・・DIVはIDやクラス名で構造を示す・・・
【引用】____________ここから
DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より

 この様に書かれていると、「すべての端末で情報を共有できますね」検索エンジンもどこがヘッダで、どこが本文か理解できる。

 HTMLには、ワープロやDTP( http://ja.wikipedia.org/wiki/DTP )とは本質的に目的が違いますから、当然デザインについては制約があります。というか、そもそもデザインのためじゃない--そのためにCSSが用意されていますが完璧じゃない---。

 同じように見せたい「ページ作りは「HTMLを使いながら、HTMLの目的を否定する」矛盾したことなのです。

 気持ちは、とて見よくわかります。しかし、14.1 スタイルシートの概説 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
も一度読んでみて下さい。

「角をためて牛を殺す」にならないよう。

 そうすると、今まで苦労して悩んだことは何だったのだろう・・と思います。私もそれを経験しています。はっきり言ってショックでした。

 
    • good
    • 0
この回答へのお礼

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

HTML、浅いようで深いですね。個人的には勝手に、「同じデザインで全てのブラウザで見れないといいページとはいえない」と思っていました。もちろん、PCページとモバイルページでは異なりますが…

概要は読んでみましたが、いまいちよくわかりませんでした。要するに、CSSはデザインのためではなく、相互運用や障害の撤廃のために作られたということで解釈は合ってますか?

とりあえず、現在のところIE6,7,8には別のスタイルシートを読み込ませるようにHTMLに書き足しました。これで、とりあえずはIE9以外のIEでもにたいように見れるようには出来ると思います。今のところ、これで手を打つしかなさそうですね。

お礼日時:2011/09/08 16:11

目的とまったく異なる回答で申し訳ないのですが。


ユーザーエージェントは、IE(Trident)、firefox(Gecko)、safari(WebKit)、opera(Presto)、googleChrome(Chromium)、Konqueror(WebKit)、Camino(Gecko)・・・だけじゃなく、携帯電話用の(Iris Browser、NetFront Browser)、スマートフォン用のブラウザ、視覚障害者用の読み上げブラウザ、点字出力端末、テキストブラウザ(Emacs/W3、Links、Lynx--google推奨--など)、そしてなんと言ったって検索エンジンのロボット・・・。数え上げたらきりがないし、今後もどんどん変わっていく。
 ブラウザごとの切り替えなんてきりがないです。

【重要!!】そもそも、HTMLは、
【引用】____________ここから
HTML文書が、ブラウザやプラットフォームの違いを超えてうまく働くべきであるということは、多くが認めるところである。 相互運用性の達成は、コンテンツプロバイダのコストを低下させる。
なぜならただ1種類の文書しか作る必要がなくなるからだ。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^(私の注)
もし【相互運用性確保の】努力が成されなければ、Webは互換性のないフォーマット毎に分け隔てられた世界に分割され、すべての関係者にとっての商業的可能性が減少することとなるであろう、大きなリスクを負うこととなる。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より

同じく
【引用】____________ここから
HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より

 したがって、きちんとHTML/CSSを作成すれば、わざわざユーザーエージェントごとにページを作成する必要がありません。
 そもそも、対応するブラウザを限定しなければならないページ作りは「HTMLを使いながら、HTMLの目的を否定する」矛盾したことなのです。

 同一のページでスタイルシートを工夫することで、古いブラウザや他のユーザーエージェント用に対応させることは、サーバーで振り分けるより、はるかに容易ですし、今後も管理が楽です。

>.htaccessでブラウザ毎にリダイヤルする方法を教えてください!
 これは自分で管理するより、レンタルサーバー業者のサービスを利用したほうが楽です。私は十数年来海外のISPなので解りませんが、国内の大手の業者ならあるはずです。

 それでも、User Agent Switcher ( https://addons.mozilla.org/ja/firefox/addon/user … )などのアドオン使ってると無効です。
    • good
    • 0
この回答へのお礼

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

おっしゃることはごもっともです。万人が同じように見れてこそ、真のHTML/CSSというもの。しかし、そこまでのスキルはないのでこの際その掟を破らせて頂きます。

ORUKA1951様のおっしゃる.htaccessに頼らない対応分けの方法を探しました。その結果、CSSハックという手法に行き着きました。これなら出来そうですし、確実な感じですね。早速試してみようと思います。

お礼日時:2011/09/07 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報