나는 꼬인 것을 사용하여 장고 앱을 운영하고 있습니다. 나는 지금 http에서 https로 이사했다. HTTP에서 https로 트위스트 된 리디렉션을 추가하려면 어떻게합니까?HTTP를 https로 트위스트로 리다이렉트
답변
Twisted Web에서 리디렉션을 생성하는 쉬운 방법은 Redirect 리소스입니다. URL로 인스턴스화하고이를 자원 계층 구조에 넣으십시오. 렌더링 될 경우 해당 URL로 리디렉션 응답을 반환합니다
from twisted.web.util import Redirect
from twisted.web.resource import Resource
from twisted.web.server import Site
from twisted.internet import reactor
root = Resource()
root.putChild("foo", Redirect("https://stackoverflow.com/"))
reactor.listenTCP(8080, Site(root))
reactor.run()
이 https://stackoverflow.com/에 리디렉션와 http://localhost:8080/에 대한 요청에 응답하는 서버를 실행합니다. 당신이 HTTPS 서버에서 호스팅 WSGI 컨테이너에 장고를 실행하는 경우
, 당신은 다음과 같이 보이는 코드이있을 수 있습니다
from twisted.internet import reactor
from twisted.web.wsgi import WSGIResource
from twisted.web.server import Site
from django import some_wsgi_application_object # Not exactly
root = WSGIResource(reactor, reactor.getThreadPool(), some_wsgi_application_object)
reactor.listenSSL(8443, Site(root), contextFactory)
reactor.run()
당신은 리디렉션을 생성하는 추가 HTTP 서버를 실행할 수 있습니다 당신 바로 첫 번째 예에서이 두 번째 예제에 일부 코드를 추가하여 원하는 님의 질문에 답변 장 폴의 제안에 따라 HTTPS (에 동일한 경로에 HTTP에 특정 경로에서 리디렉션
from twisted.internet import reactor
from twisted.web.wsgi import WSGIResource
from twisted.web.util import Redirect
from twisted.web.server import Site
from django import some_wsgi_application_object # Not exactly
root = WSGIResource(reactor, reactor.getThreadPool(), some_wsgi_application_object)
reactor.listenSSL(8443, Site(root), contextFactory)
old = Redirect("https://localhost:8443/")
reactor.listenTCP(8080, Site(old))
reactor.run()
맞긴하지만 HTTPS 리디렉션의 경우 고정 URL이 아닌 URL에 a) 사용자가 입력 한 호스트 이름 또는 주소와 b) 사용자가 입력 한 서버의 동일한 경로로 리디렉션합니다. (예 : 아파치 mod_rewrite에서'RewriteRule^var/www-redirect /(.*)$ https : // % {SERVER_NAME}/$ 1 [R, L]'). 리디렉션 리소스 또는 다른 방식으로 트위스트로 가능합니까? – rakslice
어, 내 mod_rewrite 예제는 문서 루트가'/ var/www-redirect' 인 리디렉션 사이트 용입니다. =) – rakslice
예. 'Redirect'는 실제로 매우 간단한 클래스입니다.
내 코멘트) :
from twisted.python import urlpath
from twisted.web import resource, util
class RedirectToScheme(resource.Resource):
"""
I redirect to the same path at a given URL scheme
@param newScheme: scheme to redirect to (e.g. https)
"""
isLeaf = 0
def __init__(self, newScheme):
resource.Resource.__init__(self)
self.newScheme = newScheme
def render(self, request):
newURLPath = request.URLPath()
if newURLPath.scheme != self.newScheme:
raise ValueError("Redirect loop: we're trying to redirect to the same URL scheme in the request")
newURLPath.scheme = self.newScheme
return util.redirectTo(newURLPath, request)
def getChild(self, name, request):
return self
그럼 당신은 당신이에서 리디렉션 할 HTTP 사이트에 대한 귀하의 Site()
대신에, RedirectToScheme("https")
를 사용할 수 있습니다.
참고 : 리디렉션하려는 HTTP가 비표준 포트에있는 경우 다시 작성해야하는 URL 요청에 :<port>
부분이있을 것입니다.
redirectTo가 첫 번째 인수 (여기서는'newURLPath')를 사용하고 '% s'이 (가) 문자열에 삽입했기 때문에이 함수가 사용되었습니다. 그러나 Twisted의 최신 버전은 다른 작업을하는 것으로 바뀌 었습니다. 'redirectTo'에'URLPath'를 전달하는 것은 이제 오류입니다. 이것은 Twisted에서 회귀와 같은 느낌이 들지만'redirectTo '는'str'을 앞두고 (지금은'bytes') 취한 것으로 기록되어 있습니다. 그래서 ... 이것은 또한 API의 오용이라고 주장 할 수 있습니다. 어쨌든,이 작업을하기 위해서는'newURLPath'를'redirectTo' -'bytes (newURLPath)'에 전달하기 전에 바이트 문자열에 넣어야합니다. –
- 1. http를 https로 리디렉션하는 방법
- 2. Java EE에서 HTTP를 https로 리디렉션
- 3. 줌라! HTTP를 HTTPS로 변경하는 잘못된 기본 헤더
- 4. 특정 페이지에서 http를 https로 직접 연결 하시겠습니까?
- 5. mod_alias만을 사용하여 .htaccess를 통해 디렉토리에 http를 https로 리다이렉.
- 6. 소스 코드에서 JavaScript를 사용하여 모든 http를 https로 변경하려면 어떻게해야합니까?
- 7. 트위스트로 웹 채팅하기
- 8. 트위스트로 다중 처리
- 9. 서버와 클라이언트간에 트위스트로 데이터 전송
- 10. Firefox에서 HTTPS로 Uploadify가 작동하지 않습니다.
- 11. http를 https로 강제 설정하고 htaccess 및 apache를 사용하여 사용자를 강제로 로그인해야합니다.
- 12. grails에서 https로 https를 리디렉션
- 13. https로 SSL 세션의 수명
- 14. SSL/HTTPS로 리디렉션
- 15. 아파치 .htaccess 파일 리다이렉트
- 16. 모든 것을 index.php로 리다이렉트
- 17. .htaccess 리다이렉트 문제
- 18. Wordpress Rewrite 리다이렉트 오류
- 19. IIS 리다이렉트 된 파일
- 20. http 요청을 mailto로 리다이렉트
- 21. PHP 리다이렉트 - 리퍼러를 숨기기
- 22. Watin - 페이지 리다이렉트 문제
- 23. 리다이렉트 리퍼러 헤더
- 24. PHP 리다이렉트, POST 유지
- 25. Wordpress 위젯 리다이렉트 페이지
- 26. 클래스에서 gsp 페이지로 리다이렉트
- 27. HTTP에서 HTTPS로 가면 빠를수록 좋습니다.
- 28. Tomcat : HTTP에서 HTTPS로 리디렉션하는 문제
- 29. Flex 애플리케이션에서 HTTP에서 HTTPS로 전환
- 30. http가 무한 루프로가는 https로 변환됩니다.
Django 앱을 실행하는 데 Twisted를 어떻게 사용하는지 자세히 설명하십시오. – MattH