2012-02-01 41 views
1

我有一个TYPO3网站需要通过SSL提供其主页(并且只有的主页)。在TYPO3上通过SSL提供静态资源

我在处理这个首次尝试是安装HTTPS Enforcer扩展,它可以让你指定应被强制HTTPS您的TYPO3网站特定页面。在该级别,扩展按照广告的方式工作。但问题是,虽然其中一个页面的请求确实是通过SSL处理的,但内联在页面上的资源(如图像)是而非通过SSL传递的。所以你会在浏览器中看到一个警告(这取决于浏览器,可以从一个安静的信息消息到一个完整的尖叫警告页面),告诉你该页面不是完全的安全,这可以理解为怪胎人出去了。

所以我的问题是 - 你如何让TYPO3通过SSL提供一个完整的页面,包括静态资源?有什么方法可以配置/扩展HTTPS Enforcer来做到这一点吗?在这种情况下是否有另一种扩展更好?或者我完全不幸运?

回答

4

HTTPs Enforcer做得很好。

如果它只是一个页面,您可以创建一个条件来改变baseUrl

[PIDinRootline = 123] 
config.baseURL = https://www.example.com/ 
[global] 

是否应该为整个子域工作(如ssl.example.com),你的情况是这样的:

[globalString = ENV:HTTP_HOST=ssl.example.com] 
config.baseURL = https://ssl.example.com/ 
[global] 

第二种方法是,如果页面应该被加密,则可以在每页基础上进行选择。

一个陷阱可能是外部加载的资源(如Facebook API等)。他们可能不提供SSL加密服务。


EDIT(来自@ cascaval的评论),这可能是首选的解决方案:

[globalString = _SERVER|HTTPS=on] 
config.baseURL = https://ssl.example.com/ 
[global] 

EDIT(来自@ konsolenfreddy的评论)

[globalString = ENV:TYPO3_SSL=1] 
config.baseURL = https://ssl.example.com/ 
[global] 
+0

这正是我所需要的。谢谢! – 2012-02-01 21:46:46

+3

'[globalString = _SERVER | HTTPS = on]'条件应该也可以工作,并且可以用来改变通过SSL提供服务的任何页面的'config.baseURL'。 – tmt 2012-02-02 08:23:40

+0

@cascaval Oooh,那更好!谢谢! – 2012-02-02 17:57:09

1

我想这应该是:

[globalVar = IENV:TYPO3_SSL = 1] 
config.baseURL = https://ssl.example.com/ 
[global] 

请注意“IENV”:这是TYPO3特有的。 “ENV”只会在$ _ENV或$ _SERVER中使用正常的PHP变量,其中TYPO3_SSL不是有效的密钥。

但是,这样做仅仅是以下几点:在输出设置一个标记,以便relativ链接即< IMG SRC =“上传/图片/ image.jpg文件”/>的内容会得到通过SSL牵强。

如果您的资源链接(图片,CSS等)绝对URL在您的网站这不会帮助。在这种情况下,您可以尝试扩展“https”(合并https_enforcer和另一个扩展)或stfl_replace,以使一些正则表达式替换“http://”链接到“https://”。

相关问题