2008年11月12日

.htaccessでサブフォルダをRewriteする続き

基本的には以前のエントリーで出したページを参考にRewriteCondやRewriteRuleを使って書き換えれば良いようですが、サブフォルダの中のフォルダが変換されず、URLに表示されてしまったので、(okwaveにもありました)いろいろやってみました。

詳しいことは、杉浦さんの「URLを書き換えろ!Apache Rewrite 機能の応用」と、N/Aさんの「mod_rewriteリファレンス」に大変詳細に解説してあり、勉強させていただきました♪
が、入門者ではちょっと分かりづらかった部分や、基礎知識が必要だったりしたので(涙)
自分が必要なものだけ分かりやすく整理書き足しをしておきます。



書く前の注意
「.」は「\」でエスケープシーケンスします。
RewriteBase でルートを指定(普通は「/」)しなくても良い。



RewriteCondの書き方
RewriteCond %{HTTP_HOST} ^hogehoge\.ne\.jp$
 ↑URLが「hogehoge.ne.jp」だったら次の行へ、という条件。

「!」は文字列の前につける、NOT条件子と同じ働き
RewriteCond %{HTTP_HOST} !^hogehoge\.ne\.jp$
 ↑URLが「hogehoge.ne.jp」じゃない時次の行へ、という条件。

RewriteCondを2つ続けて書いたらどちらも満たす場合のみ次の行へ。つまりAND。
ORにしたい場合は行末に「 [OR]」を付加すればよいです。



RewriteRuleの書き方
RewriteRule index\.htm index.html
 ↑index.htmがhtmlとなります。変換前 変換後となります。

変換前の「()」部分が変換後の「$1」に置換されます。

「[]」内の制御は「,」で区切って重複可能です。

杉浦さんによると、
RewriteRule 照合パターン 変換後の絶対URL
「変換後の絶対URL」は http://〜 から書いても良い(外部リダイレクトはそうなるね)し、サボって /〜 からでも良いが、ディレクトリ内部の相対URLではないのである。「照合パターン」がなんとなく相対URL風なので、「変換後も相対URLじゃないの?」と思いがちだが、これは違うのである! あくまで「照合パターン」なのである。

とのことです。注意しましょう。



で、ここまでやって結局どうだったかというと、
自分のリンクの書き方が間違ってて、.htaccessの書き方は悪くありませんでした。。。
(p−−)=O=O())@o@)/ <ぐふぅ


あ、そうそう。参考までに結局.htaccessをどう書いたか、って自分の設定を。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^サブドメイン$
RewriteCond %{REQUEST_URI} !^/サブフォルダ名/
RewriteRule (.*) /サブフォルダ名/$1

これでsakuraのレンタルサーバのライトの場合でも、サブドメインでのアクセスを下位のフォルダ以下にこっそり書きかえれますよ♪

Flash/ExpressionWeb/Web技術関連
にほんブログ村ランキング参加中です♪役に立ったらクリック宜しくです(≧∇≦)
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/22736731
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
ologo_wback.gif  Dropbox_logo_160xVMware_Logo
 

まだ載って無いエントリーも多いですが、ただいま過去のエントリーも頑張ってタグ化中です〜(謝)

※お詫び※
コメントにHPアドレス欄がありますが、本文も含め記入があるとコメントできません。
(ocnやyahooBBからのトラックバックSPAM急増のため。該当ISPは投稿ブロックします。苦情は利用ISPにお願いします。)