[英]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.