{"id":1320,"date":"2018-08-13T10:03:18","date_gmt":"2018-08-13T10:03:18","guid":{"rendered":"https:\/\/www.taywa.ch\/blog\/?p=1320"},"modified":"2018-08-24T10:46:11","modified_gmt":"2018-08-24T10:46:11","slug":"https-umstellung-bei-typo3","status":"publish","type":"post","link":"https:\/\/www.taywa.ch\/blog\/allgemein\/https-umstellung-bei-typo3\/","title":{"rendered":"https Umstellung bei TYPO3"},"content":{"rendered":"<h2>Mixed Content Warnung<\/h2>\n<p>Manchmal gibt es auch Inhalte, welche Bilder oder andere Resourcen direkt von extern \u00fcber http geladen werden. Das hat zur Folge, dass diese Inhalte nicht geladen werden oder es eine Mixed Content Warnung gibt.<\/p>\n<p>Um diese auf der Datenbank zu suchen hilft diese Abfrage:<\/p>\n<pre class=\"lang:mysql decode:true\">SELECT * FROM tt_content WHERE `bodytext` LIKE '%src=\\\"http:%' OR `bodytext` LIKE \"%src=\\'http:%'\" OR `bodytext` LIKE '%src=http:%'<\/pre>\n<p>Nun ersetzen wir das http durch https:<\/p>\n<pre class=\"lang:default decode:true\">SET @search = 'src=\"http:';\r\nSET @replace = 'src=\"https:';\r\n\r\nUPDATE tt_content SET bodytext = REPLACE (bodytext, @search, @replace);<\/pre>\n<p>Nochmals suchen, um zu sehen ob es funktoniert hat:<\/p>\n<pre class=\"lang:default decode:true\">SELECT * FROM tt_content WHERE `bodytext` LIKE '%src=\\\"https:%';<\/pre>\n<p>Da nur <strong>src\u00a0<\/strong>zu mixed content f\u00fchrt wars das. Man kann aber auch mal schauen, ob es jetzt \u00fcberhaupt noch links als http hat:<\/p>\n<pre class=\"lang:default decode:true \">SELECT * FROM tt_content WHERE `bodytext` LIKE '%http:%';<\/pre>\n<p>So finde ich etwa veraltete http links zu Google Maps und ersetzt diese:<\/p>\n<pre class=\"lang:default decode:true\">SET @search = 'http:\/\/maps.google.'; \r\nSET @replace = 'https:\/\/maps.google.'; \r\nUPDATE tt_content SET bodytext = REPLACE (bodytext, @search, @replace);<\/pre>\n<p>Oder links zur eigenen Seite:<\/p>\n<pre class=\"lang:default decode:true\">SET @domain = 'www.teatimeforauniverse.com';\r\nSET @search = CONCAT('http:\/\/',@domain);\r\nSET @replace = CONCAT('https:\/\/',@domain);\r\nUPDATE tt_content SET bodytext = REPLACE (bodytext, @search, @replace);<\/pre>\n<h2>Sed befehl f\u00fcr http zu https f\u00fcr Dateien<\/h2>\n<p>Zum Testen davor:<\/p>\n<pre class=\"lang:default decode:true \">grep \"http:\/\/\" *\r\n<\/pre>\n<pre class=\"lang:default decode:true\">sed -i 's|http:\/\/|https:\/\/|' *<\/pre>\n<p>Zum Testen danach:<\/p>\n<pre class=\"lang:default decode:true\">grep \"https:\/\/\" *\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>External URL Suchen, die auf die Seite selbst verweisen.<\/h2>\n<p>Es gibt TYPO3-Installationen, welche Links auf sich selbst mit dem Seitentyp\u00a0<strong>Link to External URL \/\u00a0\u00a0Link zu externer URL<\/strong> setzen. Meistens ein h\u00e4sslicher Workaround.<br \/>\nOb Link to External URL \/\u00a0\u00a0Link zu externer URL \u00fcberhaupt jemals eingesetzt wurden, sieht man wenn man sich alle Eintr\u00e4ge auflisten l\u00e4sst, welche pages.url nicht leer haben.<\/p>\n<pre class=\"lang:default decode:true\">SELECT * FROM pages WHERE `url` != \"\";\r\n<\/pre>\n<p>Gibt es keine Eintr\u00e4ge, gibt es hier auch nichts zu korrigieren und das wars.<\/p>\n<p>Wenn doch, geht die Analyse weiter:<\/p>\n<p>Ist der TYPO3-Seitentyp &#8222;<strong>Link to External URL<\/strong>&#8222;, muss pages.doktype = 3 sein.<\/p>\n<pre class=\"lang:default decode:true\">SELECT * FROM pages WHERE `url` != \"\" AND `doktype` = 3;<\/pre>\n<p>Eigentlich ist der\u00a0<strong>pages.urltyp = 1<\/strong> wenn das Protokoll auf http und\u00a0<strong>pages.urltyp = 2<\/strong> wenn es https. Jedoch gibt es so Spezialisten die es schaffen, trotz Protokollangabe noch <strong>http<\/strong> reinzuschreiben. Diese Suchen wir:<\/p>\n<pre class=\"lang:default decode:true\">SET @domain = 'teatimeforauniverse.com';\r\nSET @domain =  CONCAT('%',@domain, '%');\r\nSELECT @domain;\r\nSELECT * FROM pages WHERE `url` LIKE '%http:%' AND `url` LIKE @domain AND `doktype` = 3;<\/pre>\n<p>oder einfach nach urltyp = 1 suchen<\/p>\n<pre class=\"lang:default decode:true\">SELECT * FROM pages WHERE `url` != \"\" AND `urltype` = 1;\r\n<\/pre>\n<p>Wir schreiben es um und l\u00f6schen das Protokoll raus:<\/p>\n<pre class=\"lang:default decode:true\">SET @domain = 'teatimeforauniverse.com';\r\nSET @search = CONCAT('http:\/\/', @domain); \r\nSET @replace = CONCAT('https:\/\/', @domain);\r\n\r\nUPDATE pages SET url = REPLACE (url, @search, @replace);\r\n\r\nSET @wwwdomain = CONCAT('www.', @domain); \r\nSET @search = CONCAT('http:\/\/', @wwwdomain); \r\nSET @replace = CONCAT('https:\/\/', @wwwdomain);\r\n\r\nUPDATE pages SET url = REPLACE (url, @search, @replace);\r\n\r\n# wenn https in url, dann setzen wir urltyp = 4\r\nUPDATE pages SET urltype = 4 WHERE `url` LIKE '%https:%';\r\n\r\n# ersetze https:\/\/example.com mit www.example.com ohne Protokoll\r\nSET @search = CONCAT('https:\/\/', @domain); \r\nSET @replace = CONCAT('www.', @domain);\r\nUPDATE pages SET url = REPLACE (url, @search, @replace); \r\n\r\n# wenn domain in url, dann setzen wir urltyp = 2 \r\n\r\nSET @search = CONCAT('%', @domain, '%'); \r\nUPDATE pages SET urltype = 2 WHERE `url` LIKE @search;\r\n<\/pre>\n<p>Testing:<\/p>\n<pre class=\"lang:default decode:true\">SELECT * FROM pages WHERE `url` != \"\" AND `urltype` = 1;\r\nSELECT * FROM pages WHERE `url` != \"\" AND `urltype` = 4;\r\nSELECT * FROM pages WHERE `url` != \"\" AND `urltype` != 4;\r\n<\/pre>\n<h2>Link von Bildern<\/h2>\n<pre class=\"lang:default decode:true\">SET @domain = 'www.teatimeforauniverse.com';\r\nSET @search = CONCAT('http:\/\/', @domain); \r\nSET @replace = CONCAT('https:\/\/', @domain);\r\nUPDATE sys_file_reference SET link = REPLACE (url, @search, @replace);\r\n<\/pre>\n<p>Testing:<\/p>\n<pre class=\"lang:default decode:true \">SET @domain = 'www.teatimeforauniverse.com';\r\nSET @search = CONCAT('%http:\/\/', @domain, '%'); \r\nSELECT uid, link FROM sys_file_reference WHERE `link`LIKE @search;\r\n<\/pre>\n<h2>Wenn ein Proxy eingesetzt wird, hilft dieses Konfiguration:<\/h2>\n<p><a href=\"https:\/\/www.taywa.ch\/blog\/typo3\/https-einstellungen-fuer-typo3-bei-nginx-vor-apache\/\">https:\/\/www.taywa.ch\/blog\/typo3\/https-einstellungen-fuer-typo3-bei-nginx-vor-apache\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mixed Content Warnung Manchmal gibt es auch Inhalte, welche Bilder oder andere Resourcen direkt von extern \u00fcber http geladen werden. Das hat zur Folge, dass diese Inhalte nicht geladen werden oder es eine Mixed Content Warnung gibt. Um diese auf der Datenbank zu suchen hilft diese Abfrage: SELECT * FROM tt_content WHERE `bodytext` LIKE &#8218;%src=\\&#8220;http:%&#8216;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,57,197,196],"tags":[199,180],"class_list":["post-1320","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-server","category-typo3-8-lts","category-typo3-migration","tag-https","tag-typo3"],"_links":{"self":[{"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/posts\/1320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/comments?post=1320"}],"version-history":[{"count":16,"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/posts\/1320\/revisions"}],"predecessor-version":[{"id":1347,"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/posts\/1320\/revisions\/1347"}],"wp:attachment":[{"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/media?parent=1320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/categories?post=1320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.taywa.ch\/blog\/wp-json\/wp\/v2\/tags?post=1320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}