簡體   English   中英

將TYPO3多層樹中的頁面樹轉換為SSL

[英]Conversion of a pagetree within a TYPO3 multitree to SSL

在多樹TYPO3項目中,僅一棵樹應遷移到SSL。 為此,我必須在該樹中將所有頁面的url_scheme設置為“ https”。 但是,由於存在很多方面,因此手動解決它不是很有效。

示例頁面樹

+-- TYPO3 6.2 LTS
+--+-- Pagetree A (DE)               // need only this pagetree converted to SSL
+--+--+-- Pagetree A Subpage 1 (DE)
+--+--+-- Pagetree A Subpage 2 (DE)
+--+--+-- Pagetree A Subpage 3 (DE)
+--+-- Pagetree B (EN)
+--+--+-- Pagetree B Subpage 1 (EN)
+--+--+-- Pagetree B Subpage 2 (EN)
+--+--+-- Pagetree B Subpage 3 (EN)
+--+-- Pagetree C (FR)
+--+--+-- Pagetree C Subpage 1 (FR)
+--+--+-- Pagetree C Subpage 2 (FR)
+--+--+-- Pagetree C Subpage 3 (FR)
+--+-- Pagetree D (COM)
+--+--+-- Pagetree D Subpage 1 (COM)
+--+--+-- Pagetree D Subpage 2 (COM)
+--+--+-- Pagetree D Subpage 3 (COM)

以下SQL命令可用於將所有頁面設置為所需值:

UPDATE pages SET url_scheme = 2

但是我只需要一個SQL更新命令用於我的單個頁面樹(A)。 有誰知道SQL命令的查找方式?

靈感來自這里: https : //www.wacon.de/typo3-know-how/umstellung-von-http-auf-https-mit-typo3.html

如果每個PageTree的URI不同,則可以嘗試使用.htaccess RewriteCond直接重定向到您的SSL版本:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.tld$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

否則,您必須確定哪些子頁面屬於“ Pagetree A”。 一個簡單的SQL查詢可能是:

UPDATE pages SET url_scheme = 2 WHERE pid = UID_OF_PAGETREE_A OR uid = UID_OF_PAGETREE_A

如果您有多個樹級,那將會很復雜。 然后,您必須找到頁面樹的uid,然后還要更新這些頁面,像這樣的人可以更新您的第二個頁面樹:

UPDATE pages SET url_scheme = 2 WHERE pid IN (SELECT uid FROM pages WHERE pid = UID_OF_PAGETREE_A)

您可以使用cf_cache_rootline表來檢索遞歸子頁面的列表。 在SQL中這樣做很丑陋,因為您需要手動解析序列化的數組,但是它可以工作:

使用以下查詢檢查您是否獲得了一些有意義的數據:

set @pid = 40; select REPLACE(identifier, '__0_0_0', '') as ids from cf_cache_rootline where content like CONCAT('%"pid";s:', LENGTH(@pid), ':"', @pid, '"%' ) and identifier like '%\_\_0\_0\_0';

然后更新將是(給定PageTree A的uid = 40):

SET @pid = 40;
UPDATE pages SET url_scheme = 2 WHERE uid = @pid OR uid IN (select REPLACE(identifier, '__0_0_0', '') FROM cf_cache_rootline WHERE content LIKE CONCAT('%"pid";s:', LENGTH(@pid), ':"', @pid, '"%' ) AND identifier LIKE '%\_\_0\_0\_0');

還有一個站點說明,要為該子樹永久啟用url_scheme=2 ,您可以添加一個頁面TSConfig,以便為新頁面設置此設置:

[PIDinRootline = 40]
TCAdefaults.pages.url_scheme = 2
[global]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM