[英]How to redirect http url to https for django application served by Apache
我想要實現的是當我瀏覽http://example.com:8080時將其重定向到https://example.com:8080 。
我的Web應用程序是用Django編寫的,在我的設置中有以下一行:
SECURE_SSL_REDIRECT = True
example.com的httpd配置如下所示:
LISTEN 8080
<VirtualHost *:8080>
ServerName example.com
SSLEngine on
SSLCertificateFile /path_to_cer
SSLCertificateKeyFile /path_to_key
SSLCertificateChainFile /path_to_iterm.cer
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Alias /static /path_to_mysite/static
<Directory /path_to_mysite/static>
Require all granted
</Directory>
<Directory /path_to_mysite_wsgi_dir>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mysite python-path=/path_to_mysite:/path_to_mysite_python_packages display-name=%{GROUP}
WSGIProcessGroup mysite
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /path_to_mysite_wsgi.py
</VirtualHost>
使用這些配置,當我瀏覽http://example.com時 ,會出現以下錯誤:
Bad Request
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
有什么想法嗎?
您可以將流量從8080重定向到https:
<VirtualHost *:8080>
ServerName example.com
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
然后在端口443上啟用ssl,該端口是https請求的默認端口:
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /path_to_cer
SSLCertificateKeyFile /path_to_key
SSLCertificateChainFile /path_to_iterm.cer
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Alias /static /path_to_mysite/static
<Directory /path_to_mysite/static>
Require all granted
</Directory>
<Directory /path_to_mysite_wsgi_dir>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mysite python-path=/path_to_mysite:/path_to_mysite_python_packages display-name=%{GROUP}
WSGIProcessGroup mysite
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /path_to_mysite_wsgi.py
</VirtualHost>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.