情况:
我已经为部署在 Heroku 中的 Django 应用程序购买了一个特定的域,例如 'example.ch'
。我还在 Heroku (ACM) 上创建了一个自动 SSL 证书。该证书对于 WWW 子域有效,即 ACM 状态显示“正常”。对于非 WWW 根域失败,因此我删除了 Heroku 上的根域条目。
问题:
- 当我在浏览器中输入
'https://www.example.ch'
时,我发现我的安全网页,一切正常。 - 当我在浏览器中输入
'www.example.ch'
时,我找到了我的网页,但它不安全 - 当我在浏览器中输入
'example.ch'
时,找不到该网页。
目标:
我想在浏览器中输入 'www.example.ch'
以及 'example.ch'
以便始终重定向到 'https://www.example.ch'
.
方法(到目前为止):
我的主机 (swizzonic.ch) 不允许“别名”记录。 “A”记录是可能的,但 Heroku 不支持 ( https://help.heroku.com/NH44MODG/my-root-domain-isn-t-working-what-s-wrong )。 Swizzonic 支持人员告诉我使用 htaccess 文件进行重定向。
据我所知,到目前为止,我必须相应地扩展我的中间件(?)。请注意,我使用 SSL 重定向的常用选项(SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')、SECURE_SSL_REDIRECT = True、SESSION_COOKIE_SECURE = True、CSRF_COOKIE_SECURE = True
)。
如何创建 htaccess 文件,必须将其存储在哪里以及内容如何?
非常感谢!
最佳答案
您能否尝试遵循 .htaccess 文件中的规则。请确保您的 .htaccess 文件工作正常(要启用它,您可以浏览其文档)。这会将每个非 http 请求转换为域名中带/不带 www 的 https。
在测试您的网址之前,请清除您的浏览器缓存。
RewriteEngine ON
RewriteCond https !on
RewriteCond %{HTTP_HOST} ^(?:www\.)(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,NE,L]
关于django - 创建用于域重定向的 htaccess 文件(部署在 Heroku 中的 Django 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65627691/