• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccessの意味を教えてください。)

意味を教えてください.htaccessとは

このQ&Aのポイント
  • .htaccessは、制作会社が設定した特定のURLに対してリダイレクトを行うための設定ファイルです。
  • このファイルには、URLのパターンとリダイレクト先のURLを指定するルールが記述されています。
  • また、.htaccessを使用することで、ユーザーエージェント(ブラウザ)の種類やデバイスに応じて異なるページを表示することも可能です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

すみません、ずいぶん遅くなってしまいました。 > RewriteRule ^(.*)$ sp/$1 [R,L] > の"^(.*)$ sp/$1"の ”$”と”$1”の意味が良くわかりません。 〔1〕 「^(.*)$」はURLを正規表現でマッチさせています。 「^」が最初「$」が終わりと考えてください。 「(.*)」は後で使うために「()」内の正規表現にマッチするものを変数に格納する感じです。 正規表現で「()」を使うとそのあとの置換などに使うために変数に格納します。 「$0」がマッチした全体で、後は「()」が出てくる順に「$1」「$2」...と格納されます。 ※参考URLはサイト名はふざけてますが正規表現の勉強にはもってこいです。 〔2〕 「sp/$1」は〔1〕で取得した変数と合わせてあたらしいURLを作っています 「$1」が変数です 〔3〕「[R,L]」はオプションです Lはこれでこの条件での判別は最後ということ Rは302レスポンスを返してリダイレクトします。 なのでこのRewriteRule では aaa/bbb/cccの場合、 「(.*)」に「aaa/bbb/ccc」がマッチし$1=「aaa/bbb/ccc」になり 「sp/$1」の「$1」に代入するので 「sp/aaa/bbb/ccc」なったURLにリダイレクトということです。 要はスマホがPC用のURLにディレクトリの方にリダイレクトするということのようです。 「RewriteCond %{REQUEST_URI} !/sp/」で始まっている部分は スマホがPC用のURLに来た場合で、 「RewriteCond %{REQUEST_URI} /sp/」で始まっている部分は PCがスマホ用のURLに来た場合にそれぞれ後ろに続くURLで転送するように書きたかったんのだと思います。

参考URL:
http://www.mnet.ne.jp/~nakama/
sujino
質問者

お礼

Hanagefactory様 回答有難うございます。 また、詳しくお教え頂きありがとうございます。 なんとなく理解できましたので、アレンジして転送設定を試したいと思います。 有難うございました。

その他の回答 (2)

回答No.2

すでに回答がされていますが、mod_rewriteという webシステムから見えるURLを書き換えるツールを使っています ルートのURL(例:http://hogehoge.com/)のURLにスマホやガラケーからのアクセスがあった場合 スマホであれば「http://hogehoge.com/sp/」のURLと同じ内容を表示して ガラケーであれば「http://hogehoge.com/m/」のURLと同じ内容を表示する などの用途で使っています RewriteCondで該当する条件(スマホやガラケーの判別)をしていて 該当するならRewriteRuleの中の記述で書き換えを行う、という感じですね

sujino
質問者

お礼

m_matsubara様 回答有難うございます。

回答No.1

簡単に言えばスマホとかガラケーだったら違う表示をさせるように、 設定が書いてあります。 具体的にはmod_rewriteというWebサーバー(apache)のモジュールを利用した、 リクエストURLとユーザーエージェントによって、 どの内部のリソースを表示させるかを振り分けています。 例えばリクエストに/hotel/all/が含まれ/stay/hotel/all/や/sp/stay/がなければ、 iphoneやandroidと、特定の端末の場合は、 /sp/stay/all.htmlの内容を表示するみたいな感じですかね。 もちょい上手く書けるとは思いますが。 後は下記などを参考に読んでみては? http://oxynotes.com/?p=7392

sujino
質問者

お礼

Hanagefactory様 詳しくお教え頂きありがとうございます。 あわせて、参考HPをお教え頂きありがとうございます。 すいません、お教え頂いたHPを拝見しましたが、下記点が理解できませんでした、ご都合の良い時で結構ですのでお教え頂けましたら幸いです。 RewriteRule ^(.*)$ sp/$1 [R,L] の"^(.*)$ sp/$1"の ”$”と”$1”の意味が良くわかりません。 多分ファイル名の事だとは思うのですが、拡張子をhtmlからphpへ変更する場合はどうしたらよいのでしょうか?

関連するQ&A