2012-02-01 47 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://」。

相關問題