/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

February 2, 2007

htaccess mod_rewite

mod_rewiteの設定は.htaccessに記載していることだと思うが、ヘンテコな設定はかなりApacheに負荷を掛け、Temporary Service UnavailableやForbidenなどのエラーを頻発させてしまう。

よく使われる設定は、次のようなものだ。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^db/([0-9A-Za-z]+)_(.*)\.html$ db/db\.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d は「ディレクトリが存在しない場合」
さらに、次の RewriteCond %{REQUEST_FILENAME} !-f は「ファイルが存在しない場合」

リクエストされたディレクトリまたはファイルが存在しなければ、mod_rewiteのルール処理に行くよ。ということである。つまりルートディレクトリに置いた日には無駄にApacheのリソースを喰ってしまうのである。dbディレクトリにhtaccessを置くなど、ディレクトリ毎に設定する方策をとる必要がある。

また、ルール処理にできるだけ行かせないようにする記載方法も併せて施策としたい。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(css|gif|jp?g|png)$
RewriteCond %{REQUEST_URI} !^/images/.*$
RewriteCond %{REQUEST_URI} !^/s/.*$
RewriteRule ^db/([0-9A-Za-z]+)_(.*)\.html$ db/db\.php?id=$1 [L]

このエントリをはてなブックマークに追加 このエントリをNifty Clipに追加 このエントリをYahoo!ブックマークに追加 このエントリをTechnoratiに追加 このエントリをLivedoor Clipに追加 このエントリをGoogle Bookmarksに追加 このエントリをFC2ブックマークに追加 このエントリをPOOKMARK. Airlinesに追加 このエントリをBuzzurl(バザール)に追加 このエントリをChoixに追加 このエントリをイザ!に追加 このエントリをnewsingに追加 このエントリをdel.icio.usに追加 このエントリをSpurlに追加 このエントリをDiggに追加

投稿者 funa : 06:29 PM | Web | コメント (0) | トラックバック (61)


PhotoGallery
SEARCH

Mobile
QRコード
携帯でのアクセスはこちらから!
RSS Radio
radio.gif
CATEGORY
Recent Entrys
Trackbacks
COMMENTS
ARCHIVES
<     July 2010     >
Sun Mon Tue Wed Thi Fri Sat
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
LINKS