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

.htaccessで下記を使用しているのですが

RewriteEngine On
RewriteRule ^page/([0-9A-Za-z]+)/ index\.php

プログラム以外のimgフォルダに入っているものも
上記の対象に入ってしまいます。
imgフォルダ内などに、.htaccessで

RewriteEngine Off

を設置して対応しているのですが、不恰好です。
良い対策方法を教えてもらえますでしょうか?

●質問者: makocan
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● じゅぴたー
●40ポイント

「imgフォルダ」の特徴を正規表現で表すことはできますか?

できなければ RewriteRule では対応できません。


2 ● rouge_2008
●60ポイント ベストアンサー

「RewriteCond」で除外するディレクトリーを指定するのはいかがでしょうか?


以下は「js」「css」「img」フォルダを対象外にする場合の記述例です。

RewriteEngine On
RewriteCond %{REQUEST_URI} !/?js/?
RewriteCond %{REQUEST_URI} !/?css/?
RewriteCond %{REQUEST_URI} !/?img/?
RewriteRule ^page/([0-9A-Za-z]+)/ index\.php



「RewriteCond」のTestStringには、RewriteRuleの後方参照を使用することも出来ますので、以下のように書くことも出来ます。


RewriteEngine On
RewriteCond $1 !(js)
RewriteCond $1 !(css)
RewriteCond $1 !(img)
RewriteRule ^page/([0-9A-Za-z]+)/ index\.php


※条件の行は「RewriteCond %{REQUEST_URI} !/?(js|css|img)/?」あるいは「RewriteCond $1 !(js|css|img)」のようにまとめて書いても大丈夫です。


http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#InternalRuleset

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond


日本語で読みたい場合にどうぞ。

http://net-newbie.com/trans/mod_rewrite.html#InternalRuleset

http://net-newbie.com/trans/mod_rewrite.html#RewriteCond

◎質問者からの返答

ありがとうございます!

関連質問

●質問をもっと探す●



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