2011-11-30 6 views
2

lighttpd 및 ssl이 작동하는 django 사이트 설정이 있지만 http에서 https로 작동하도록 리디렉션을받을 수 없습니다. 내 설정은 매우 유사하다 : https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#lighttpd-setup 나는fcgi, ssl 및 django가 HTTPS HTTP로 리디렉션

기본적으로 내 설정은 다음과 같이 보이는 우분투에 lighttpd를/1.4.26을 사용하고 있습니다 :

$HTTP["host"] =~ "myhost.com" { 
server.document-root = "/home/myvenv/blah" 
fastcgi.server = ( 
    "/blah.fcgi" => (
    ( 
     "host" => "127.0.0.1", 
     "port" => 16666, 
     "check-local" => "disable", 
     "max-procs" => 4, 
     "min-procs" => 4, 
    ) 
) 
) 
    url.rewrite-once = ( 
    "^(/favicon.ico.*)$" => "/$1", 
    "^(/admin_media.*)$" => "/$1", 
    "^(/media.*)$" => "/$1", 
    "^(/.*)$" => "/blah.fcgi$1", 
) 

expire.url = ( 
    "/favicon.ico" => "access 1 seconds", 
    "/admin_media" => "access 1 seconds", 
"/media" => "access 1 seconds", 
) 

} 

내가 https를 내 HTTP를 수행하려면이 옵션을 추가 할을 재 :

https://myhost.com/blah.fcgi/my/path/to/blah

0 :

$SERVER["socket"] == ":80" { 
    $HTTP["host"] =~ "(.*)" { 
    url.redirect = ("^/(.*)" => "https://%1/$1") 
    } 
} 

를 내가 리디렉션을 사용할 때 문제가, 내 URL은 같이 다시 작성됩니다

내가 정말 원하는 blah.fcgi 부분에 넣어 : 나는 리디렉션이 재를 포함하는 이유는 확실하지 않다

https://myhost.com/my/path/to/blah

및/또는 방법을 방지하기 위해 실제로 올바른 리디렉션을합니까?

많은 도움을 주셨습니다.

답변

3

내가 여기에 같은 방식으로 lighttpd를를 사용하고 내가 비슷한 리디렉션을 수행하는 방법입니다

url.redirect = (
    "^(?:/[a-z]+\.fcgi)?(.*)$" => "https://%1$1" 
) 

이 왼쪽에있는 경기에서 다시 스크립트 이름을 제거를, 그래서 표시되지 않습니다 리디렉션에서

+0

오, 이런, 확실히 작동합니다. Thx 내 뇌졸중을 위해 :) – jmat

+0

왜 이런 일이 일어나는가? mod_rewrite가 리디렉션 전에 발생해야하기 때문입니다. – jmat

+0

전적으로 확신 할 수는 없지만 당신과 같은 가설을 가지고 있습니다. –