웹마스터 팁
page_full_width">
Lighttpd에서 XE를 사용할 때의 mod_rewrite 규칙
2009.12.23 10:29
사양이 그리 좋지 않은 서버라 그런지 아파치 돌아가는 것도 버거워 하길래, 가볍고 빠른 lighttpd로 바꿨습니다.
일단 속도면에서는 꽤 만족스러운데, 딱 한가지 XE를 사용할 때 걸리는 점이 .htaccess 파일 같은 사용자 정의 파일이 지원되지 않는다는 것이었습니다.
그래서 서버에서 rewrite 규칙을 정해줘야 하는데, 아파치와 크게 다르지 않아서 꽤 쉽게 설치할 수 있었습니다.
lighttpd.conf 에 다음 내용을 포함시키시면 됩니다.
제 경우에는 여러개의 사이트를 사용하고 있어서 host 별로 규칙을 분리하도록 해두었습니다.
(단, XE가 도메인 루트에 설치되어 있는 경우에만 해당합니다.)
$HTTP["host"] =~ "yoursite\.com$" { url.rewrite-once = ( #layouts "^/layouts/(.+)/(.+)\.html$"=>"/index.php", #static files "^/(?:.+)/files/(member_extra_info|attach|cache|faceOff)/(.*)"=>"/files/$1/$2", "^/(?:\w+)(?:/\w+(?:/entry)?)?/(files|modules|common|widgets|widgetStyle|layouts|addons)/(.*)"=>"/$1/$2", #rss, blogAPI "^(rss|atom)$"=>"index.php?module=rss&act=$1", "^(\w+)/(rss|atom|api)$"=>"index.php?mid=$1&act=$2", "^(\w+)/(\w+)/(rss|atom|api)$"=>"index.php?vid=$1&mid=$2&act=$3", #trackback "^/(\d+)/(.+)/trackback$"=>"index.php?document_srl=$1&key=$2&act=trackback", "^/(\w+)/(\d+)/(.+)/trackback$"=>"index.php?vid=$1&document_srl=$2&key=$3&act=trackback", #administrator page "^/admin/?$"=>"/index.php?module=admin", # document permanent link "^/(\d+)$"=>"/index.php?document_srl=$1", # mid link "^/(\w+)/?$"=>"/index.php?mid=$1", # vid + mid link "^/(\w+)/([a-z]\w+)/?$"=>"/index.php?vid=$1&mid=$2", # mid + document link "^/(\w+)/(\d+)$"=>"/index.php?mid=$1&document_srl=$2", # vid + mid + document link "^/(\w+)/(\w+)/(\d+)$"=>"/index.php?vid=$1&mid=$2&document_srl=$3", # mid + entry title "^/(\w+)/entry/(.+)$"=>"/index.php?mid=$1&entry=$2", # vid + mid + entry title "^/(\w+)/(\w+)/entry/(.+)$"=>"/index.php?vid=$1&mid=$2&entry=$3" ) }
댓글 2
-
천하일꾼
2009.12.28 18:06
-
teslamint
2010.03.02 20:41
xe로 끝나는 디렉토리에 있을 경우입니다.
static files부분 때문에 좀 고생했습니다.((?:) 부분이 그룹으로 안 잡힌다는 걸 몰랐기 때문에)
url.rewrite-once = ( #layouts "^/(.*)xe/layouts/(.+)/(.+)\.html$"=>"/$1xe/index.php", #static files "^/(.*)xe/(?:.+)/files/(member_extra_info|attach|cache|faceOff)/(.*)"=>"/$1xe/files/$2/$3", "^/(.*)xe/(?:\w+)(?:/\w+(?:/entry)?)?/(files|modules|common|widgets|widgetStyle|layouts|addons)/(.*)"=>"/$1xe/$2/$3/", #rss, blogAPI "^/(.*)xe/(rss|atom)$"=>"/$1xe/index.php?module=rss&act=$2", "^/(.*)xe/(\w+)/(rss|atom|api)$"=>"/$1xe/index.php?mid=$2&act=$3", "^/(.*)xe/(\w+)/(\w+)/(rss|atom|api)$"=>"/$1xe/index.php?vid=$2&mid=$3&act=$4", #trackback "^/(.*)xe/(\d+)/(.+)/trackback$"=>"/$1xe/index.php?document_srl=$2&key=$3&act=trackback", "^/(.*)xe/(\w+)/(\d+)/(.+)/trackback$"=>"/$1xe/index.php?vid=$2&document_srl=$3&key=$4&act=trackback", #administrator page "^/(.*)xe/admin/?$"=>"/$1xe/index.php?module=admin", # document permanent link "^/(.*)xe/(\d+)$"=>"/$1xe/index.php?document_srl=$2", # mid link "^/(.*)xe/(\w+)/?$"=>"/$1xe/index.php?mid=$2", # vid + mid link "^/(.*)xe/(\w+)/([a-z]\w+)/?$"=>"/$1xe/index.php?vid=$2&mid=$3", # mid + document link "^/(.*)xe/(\w+)/(\d+)$"=>"/$1xe/index.php?mid=$2&document_srl=$3", # vid + mid + document link "^/(.*)xe/(\w+)/(\w+)/(\d+)$"=>"/$1xe/index.php?vid=$2&mid=$3&document_srl=$4", # mid + entry title "^/(.*)xe/(\w+)/entry/(.+)$"=>"/$1xe/index.php?mid=$2&entry=$3", # vid + mid + entry title "^/(.*)xe/(\w+)/(\w+)/entry/(.+)$"=>"/$1xe/index.php?vid=$2&mid=$3&entry=$4" )
감사합니다