【发布时间】:2015-11-03 10:47:12
【问题描述】:
目标:每个非 https 链接都必须变成 https。总是。
目前已实现:
- 将 base-url 更改为 https
- 如果我使用非 http,则每个链接都是 https
我的第二个成就说明了我的问题。由于某些原因,如果我在非 https 页面上,则链接指向 https,否则指向 http。我知道我可以使用 .htaccess 实现解决方法,但这不是干净的方式,我想以干净的方式实现它。
我做了什么来修复它:
我知道可以为单个错别字页面强制使用协议,我可以通过数据库更新所有页面,但在这种情况下,这是不可能的,因为它是多树表示,并且并非每棵树都必须使用 https。
我也在谷歌上搜索并阅读了有关 config.baseUrl 的信息,但我什至在谷歌搜索之前就更改了它。
在演示文稿“Enforce https”中安装了密钥“https”,但我在 Ext.js 中找不到它。存储库。
更多内容:
我猜这个问题不是由 .htaccess 引起的,但无论如何:这在我的 .htaccess 文件中
RewriteCond %{HTTP_HOST} ^mydomain\.de$
RewriteRule (.*) https://www.mydomain.de/$1 [R=301,L]
感谢任何帮助。
【问题讨论】:
-
为什么要在 TYPO3 中这样做?在服务器配置中很容易做到这一点(例如
.htaccess)。此外,如果第一页通过服务器配置强制使用 TLS,并且所有链接都使用打开页面时使用的相同协议,那么所有呈现给用户的链接都是https://-links。您可以在重写规则中按域过滤,或为不同的域使用不同的 vHost。 -
在 html dom 中提供正确的链接比提供错误的链接并事后重定向更有意义。仅设置根页面协议的另一个不良副作用是当有人使用 http-protocoll 请求子页面时。
-
但是您提供了正确的链接 - 永远不会使用 HTTP 传递 DOM,因为重定向发生在此之前。所以用户只能获得带有 HTTPS 链接的 DOM。而且您无法阻止有人手动使用
http://输入您的网址。 -
感谢您的提示。嗯,我刚刚检查了菜单中的网址,例如并注意到它们不是相对的,而是绝对的:O 这不应该是这种情况 => 我会调查的。
标签: .htaccess http https typo3 base-url