Page 14 of 59

CoSchni#5: Seiteninhalt ohne Head ausgeben für Ajax Requests

Angenommen man hat eine Seite mit dynamischem Inhaltsbereich, der zum Zeitpunkt, wenn die Seite geladen wird, noch nicht feststeht, bzw. man diesen aus Performance-Gründen nicht gleich mitladen will. Der Inhalt soll erst beim Klicken auf “Weiter” oder scrollen dynamisch in den bereits angezeigten Inhalt geladen werden. Der nachgeladene Inhalt, bzw. das HTML braucht somit bspw. keine head-Angabe, weil die bereits vorhanden ist. Um dies zu erreichen, muss ein neuer Seitentyp definiert werden, bei dem alle weiteren “Ausgaben” unterdrückt werden:

[PHP]
dynCall = PAGE
dynCall {
typeNum = 999
10 < dyn.Content config { disableAllHeaderCode = 1 xhtml_cleaning = 0 admPanel = 0 debug = 0 no_cache = 1 } } [/PHP] Aufrufen kann man später den Inhalt wie folgt: [PHP] http://www.example.com/index.php?id=123&type=999 [/PHP]

CoSchni#4: SourceOptimization (sourceopt)

Die TYPO3 CMS Extension SourceOptimization soll dafür sorgen, das der gesamte HTML minified augegeben wird. Auf Wunsch werden alle HTML-Leerzeichen und Kommentare entfernt, außer der TYPO3 CMS Hinweis im Header. Damit die Extension sourceopt den HTML-Code minifiziert, ist folgende Zeile in den Constants notwendig:

[PHP]
// TYPOScript Constants
sourceopt.formatHtml = 1
[/PHP]

Ist nur ein Zeile und sieht auch logisch aus, da es ansonsten aber keinen Hinweis gibt, habe ich etwas gebraucht bis ich dies gefunden hatte.

[random_content group_id=”211″ num_posts=”1″]

CoSchni#3: htaccess Minified Version für TYPO3 CMS Projekte

Standardmäßig ist die htaccess von TYPO3 mit vielen Kommentaren versehen in denen weitere Optionen erklärt werden. Wer dies nicht braucht und zudem die seit der TYPO3 CMS Version 4.7 Komprimierung nutzen möchte, für den sind die unten stehenden Zeilen vollkommen ausreichend.

[PHP]
// File: typo3conf/localconf.php

$TYPO3_CONF_VARS[‘BE’][‘compressionLevel’] = ‘5’;
$TYPO3_CONF_VARS[‘FE’][‘compressionLevel’] = ‘5’;
[/PHP]

[PHP]

AddType “text/javascript” .gzip


AddType “text/css” .gzip

AddEncoding gzip .gzip

RewriteEngine On
RewriteRule ^typo3$ – [L]
RewriteRule ^typo3/.*$ – [L]
RewriteRule ^uploads/.*$ – [L]
RewriteRule ^fileadmin/.*$ – [L]
RewriteRule ^typo3conf/.*$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php
[/PHP]

[random_content group_id=”211″ num_posts=”1″]

CoSchni#2: htaccess Expire Header für Caching von Dateien

Der untere Code eingefügt in die htaccess sorgt zum einen dafür das gepackte JavaScript (JS) Dateien vom Browser entsprechend erkannt werden. Der zweite Absatz ist verantwortlich dafür dem Browser mitzuteilen, wie entsprechende Datei-Endungen im Browser gecached werden sollen. Überprüft können die Einstellungen bspw. mit dem Chrome im Tab “Network”.

[PHP]

AddType “text/javascript” .gzip


AddType “text/css” .gzip

AddEncoding gzip .gzip



ExpiresActive on
ExpiresDefault “access plus 7 days”
Header append Cache-Control “public”

FileETag MTime Size


SetOutputFilter DEFLATE


[/PHP]

CoSchni#1: htaccess Domain immer mit www und SSL

Für eine einheitliches Tracking bzw. ein besseres Ranking in den Suchmaschinen ist es wichtig, das Inhalte nur unter einer Domain erreichbar sind, Stichwort: Duplicate Content und Canonical Tag. Daher sollte u.a. darauf geachtet werden, das die Inhalte nur mit www oder ohne www erreichbar sind. Für mehr Komfort werden die Parameter zudem automatisch wieder an die Domain angehängt.

[PHP]

# Immer mit www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.de$ [NC]
RewriteRule ^(.*)$ https://www.example.de/$1 [R=301,L]

# Immer über SSL
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L]


[/PHP]

Letzteres kann man im TYPO3 CMS auch direkt aktivieren, jedoch hatte dies nicht gewünschten Erfolg bzw. kam es, glaube ich, zu einem Konflikt mit RealURL.

[random_content group_id=”211″ num_posts=”1″]