運行在負載均衡器後面的Django網站,它通過在/ health /使用實例的IP地址而不是域名發出HTTP GET請求來執行健康檢查。django:使用ip地址代替域名時禁用PREPEND_WWW
我使用PREPEND_WWW將www添加到域名如果丟失。
但是PREPEND_WWW也將www添加到IP地址,這顯然是錯誤的。例如http://www.123.123.123.123/health/
有沒有辦法阻止添加www的IP地址,或者也許只有當正則表達式列表匹配時才添加www的匹配?
或者我應該避免使用PREPEND_WWW並使用自定義視圖/重定向手動實現重定向?
請注意我也使用SECURE_SSL_REDIRECT = True,以防萬一也會影響www重定向。
以供將來參考,我使用Apache在Ubuntu的mod_wsgi,所以我的「服務器級別」的解決方案是使用mod_rewrite。
# Edit vhost configuration
sudo vi /etc/apache2/sites-enabled/000-default.conf
# Add redirection to VirtualHost block
<VirtualHost *:80>
...
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule (.*) https://www.domain.com$1 [R=301,L]
...
# Enable mod_rewrite and restart
sudo a2enmod rewrite && sudo service apache2 restart
我想說這應該在生產中的nginx(或其他Web服務器)級別完成。 – makaveli