nginx 에서 rewrite기능을 사용하면 기본적으로 request_uri 가 붙는다..
가령, www.abc.com/test/index.php?a=123 을 아래의 룰로 redirect하면
rewrite ^/test/ / permanent;
www.abc.com/test/?a=123
결과
www.abc.com/?a=123
으로 되어 버린다~
아래와 같이 하면 깔끔하게 해결~
rewiret ^/test/ /? permanent;
www.abc.com/test/?a=123
결과
www.abc.com/
사소하지만 이거 찾는데 시간이 좀 걸렸따아~;ㅋ
lighttpd 웹서버에서 CakePHP 프레임웍 사용할때 lighttpd.conf 셋팅방법입니다.
php.ini 에
추가한다.
lighttpd.conf 의 fastcgi설정에
"broken-scriptfilename" => "enable" 추가한다.
(( "socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi" ,
"broken-scriptfilename" => "enable"
))
)
lighttpd.conf 의 rewrite 설정
"(css|files|img|js)/(.*)" => "/$1/$2",
"^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3",
)
lighttpd를 재가동합니다.
<VirtualHost *>
ServerName www.original.com
ServerAlias original.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^original.com$ [OR]
RewriteCond %{HTTP_HOST} com.$
RewriteRule ^/(.*) http://www.somewhere.com/$1 [L,R]
</VirtualHost>
위와 같이 처리하면 서브URI까지 다 변경이 됨.
도메인변경등으로 서버변경등의 사유로 기존경로를 그대로 써야할경우 유용함.