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


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

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

RewriteEngine Off

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/09/13 20:36:15
  • 終了:2011/09/14 21:00:50

ベストアンサー

id:rouge_2008 No.2

rouge_2008回答回数594ベストアンサー獲得回数3512011/09/14 01:50:03

ポイント60pt

「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

id:makocan

ありがとうございます!

2011/09/14 21:00:33

その他の回答(1件)

id:Jupiter2100 No.1

じゅぴたー回答回数444ベストアンサー獲得回数742011/09/13 20:52:59

ポイント40pt

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

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

id:rouge_2008 No.2

rouge_2008回答回数594ベストアンサー獲得回数3512011/09/14 01:50:03ここでベストアンサー

ポイント60pt

「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

id:makocan

ありがとうございます!

2011/09/14 21:00:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません