Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 40 von 184

Thema: Contao für Google Page Speed optimieren

  1. #1
    Newsbot
    Registriert seit
    17.06.2009.
    Ort
    Newsbot - kein echter Nutzer!
    Beiträge
    795

    Beitrag Contao für Google Page Speed optimieren

    Spätestens seit Google angekündigt hat, dass die Geschwindigkeit einer Webseite eines der Kriterien für ihren Page Rank ist, achten die Leute verstärkt darauf, Ihre Seiten diesbezüglich zu optimieren. Dieser Artikel zeigt, wie sich Contao "tunen" lässt, um einen hohen Page Speed Score zu erhalten.

    Ganzen Beitrag zu 'Contao für Google Page Speed optimieren' lesen

  2. #2
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Danke für dieses ausführliche Tutorial. Ich versuche gerade den Subdomains "Hack" umzusetzen. Nur verstehe ich nicht wo ich diesen Hook einbauen muss. Hab ich noch nie gemacht. Wäre dankbar für einen Hinweis.

    Edit:
    Glaub hier werde ich geholfen oder? Versteh ich nur noch nicht so ganz
    http://www.contao.org/hooks-verwende...ontendTemplate

    Gruß
    Frank
    Geändert von Kahmoon (07.08.2010 um 23:15 Uhr)

  3. #3
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Niemand eine Idee?

  4. #4
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Steht doch eigendlich alles dort...
    Im Prinzip macht man ein kleines Modul draus.

    /system/modules/subdomainhack/config/config.php
    darin:
    PHP-Code:
    <?php
    $GLOBALS
    ['TL_HOOKS']['outputFrontendTemplate'][] = array('MySubdomainHack''addStaticUrl');
    ?>
    /system/modules/subdomainhack/MySubdomainHack.php
    PHP-Code:
    <?php
    class MySubdomainHack
    {
        public function 
    addStaticUrl($strText,$strTemplate)
        {
            
    //weiter wie im Artikel...
           //die Domain URLs natürlich anpassen 
        
    }

    }

    ?>
    Habs nicht getestet, von daher, probier mal
    Geändert von BugBuster (08.08.2010 um 16:31 Uhr) Grund: Source Code korrigiert
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard Internal Server Error

    Ich bekomme bei der neuen htaccess diese Meldung:
    Code:
    [alert] [client 192.168.x.y] /var/www/typolight-trunk/.htaccess: ExpiresActive not allowed here
    Da muss ich doch bestimmt noch was in der vhost einstellen, oder?

    Nachtrag
    Habe die vhost erweitert um das Recht Indexes:
    Code:
    AllowOverride FileInfo Indexes
    Geändert von BugBuster (08.08.2010 um 14:28 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Steht doch eigendlich alles dort...
    Im Prinzip macht man ein kleines Modul draus.

    /system/modules/subdomainhack/config/config.php
    darin:
    PHP-Code:
    <?php
    $GLOBALS
    ['TL_HOOKS']['outputFrontendTemplate'][] = array('MySubdomainHack''addStaticUrl');
    ?>
    /system/modules/subdomainhack/MySubdomainHack.php
    PHP-Code:
    <?php
    class MySubdomainHack
    {
        public 
    funtion addStaticUrl($strText,$strTemplate)
        {
            
    //weiter wie im Artikel...
           //die Domain URLs natürlich anpassen 
        
    }

    }
    Habs nicht getestet, von daher, probier mal
    Wusst ich nicht das man es so macht. Daher hab ich ja gefragt wie die Sache mit Hooks funktioniert

    Danke für die Info. Hab jetzt mal diese 2 Dateien erstellt und in den Modulordner geladen. Schmeisst aber einen Fehler . Das fehlende "c" bei function hab ich schon ausgebessert....

    Gruß
    Geändert von Kahmoon (08.08.2010 um 14:56 Uhr)

  7. #7
    Gesperrt
    Registriert seit
    22.11.2009.
    Beiträge
    188

    Daumen hoch

    Super Artikel! - einfach nur Top!

    Die Subdomains in Contao nutzen

    Dieser Teil ist tatsächlich der Knackpunkt unseres kleinen "Hacks". Auf contao.org habe ich das Problem durch das Hinzufügen eines einfachen Output-Filters gelöst, der den outputFrontendTemplate-Hook verwendet.

    Sollte sich die Maßnahme bewähren, werden wir sie eventuell als Feature in Contao 2.10 hinzufügen.
    ... dann gedulde ich mich noch und freue mich einfach auf Integration in einer der neuen Versionen.

    Gruß,
    Claudio.
    Geändert von rantanplan1304 (08.08.2010 um 15:12 Uhr)

  8. #8
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Danke für die Info. Hab jetzt mal diese 2 Dateien erstellt und in den Modulordner geladen. Schmeisst aber einen Fehler . Das fehlende "c" bei function hab ich schon ausgebessert....
    Was für einen Fehler bekommst du denn?

    Ggf. könnte es reichen, wenn du die system/modules/subdomainhack/MySubdomainHack.php mit einem ?> abschließt?

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  9. #9
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Eventuell muss die Class von Frontend erben, probier mal:
    Code:
    class MySubdomainHack extends Frontend
    Ansonsten wäre die Fehlermeldung hilfreich.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  10. #10
    Contao-Urgestein Avatar von FloB
    Registriert seit
    19.06.2009.
    Ort
    Sonnensystem
    Beiträge
    1.618

    Standard

    Warum sollten denn /tl_files, /system und /plugins je separate Subdomains bekommen? Reicht da nicht eine?
    So long,
    FloB since Nov. 2007 +706P +115P and counting

  11. #11
    Contao-Nutzer Avatar von redbecks
    Registriert seit
    19.06.2009.
    Ort
    Bremen
    Beiträge
    81

    Standard

    wow... einige unterseiten habe ich vom page speed score 52 auf 90 optimieren können. ich habe ein neues tool lieben gelernt...

    anfangs hatte ich auch probleme, den hook einzubauen, doch mit der anleitung hier, hat es dann sofort geklappt.

    probleme gab es bei mir als ich in der .htaccess den teil mit der 404 weiterleitung eingebaut habe. da 1und1 noch ein etwas älteren apache laufen hat, habe ich immer eine 500er meldung bekommen. die lösung ist folgende:

    RewriteRule .* - [R=404,L]
    durch z.B. folgendes ersetzen
    RewriteRule ^/foo /nonexistant [L]

    alte apache server haben schwirigkeiten 404 meldungen direkt auszugeben. wenn man aber auf eine nicht existierende datei weiterleitet welche auf eine 404 führt, funktioniert es auch (soweit ich herausgefunden habe, ist dies auch suchmaschinen geeignet).

    Vielen Dank für den super Blog Beitrag!

  12. #12
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von FloB Beitrag anzeigen
    Warum sollten denn /tl_files, /system und /plugins je separate Subdomains bekommen? Reicht da nicht eine?
    Empirische Tests haben ergeben, dass man statische Ressourcen von 1 bis max. 3 Subdomains laden kann, um dabei die Möglichkeiten moderner Webbrowser (parellele Downloads durch gleichzeitig aktive Verbindungen) optimal auszunützen. Übersteigt die Anzahl der Verbindungen zu verschiedenen Subdomains eine bestimmte Schwelle (~2-3), dann ist der DNS-Overhead für das Auflösen dieser Domains wieder eine Performance-Nachteil...
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  13. #13
    Contao-Urgestein Avatar von FloB
    Registriert seit
    19.06.2009.
    Ort
    Sonnensystem
    Beiträge
    1.618

    Standard

    Zitat Zitat von xchs Beitrag anzeigen
    Empirische Tests haben ergeben, dass man statische Ressourcen von 1 bis max. 3 Subdomains laden kann, um dabei die Möglichkeiten moderner Webbrowser (parellele Downloads durch gleichzeitig aktive Verbindungen) optimal auszunützen. Übersteigt die Anzahl der Verbindungen zu verschiedenen Subdomains eine bestimmte Schwelle (~2-3), dann ist der DNS-Overhead für das Auflösen dieser Domains wieder eine Performance-Nachteil...
    Also reicht auch eine oder zwei Subdomains
    So long,
    FloB since Nov. 2007 +706P +115P and counting

  14. #14
    Contao-Nutzer Avatar von redbecks
    Registriert seit
    19.06.2009.
    Ort
    Bremen
    Beiträge
    81

    Standard

    Zitat Zitat von FloB Beitrag anzeigen
    Also reicht auch eine oder zwei Subdomains
    also bei mit habe ich ohne subdomain ein score von 80 mit einer subdomain ein score von 83 mit zwei ein score von 89 und mit drei habe einen score von 90

    demnach würde ich 2-3 subdomains schon einsetzen.

  15. #15
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    385

    Standard

    @redbecks: Wie kannst du das bei 1und1 reproduzieren? Ich konnte bei meinem 1und1-Account ersteinmal keine Probleme feststellen.

    Was mir nur auffällt:

    Mit dieser .htaccess erhalte ich 91/100:
    PHP-Code:
    AddType x-mapp-php5 .php

    ##
    # Rewrite base
    ##
    RewriteEngine On
    RewriteBase 
    /

    ##
    # Block malicious requests
    ##
    RewriteCond %{REQUEST_URI} (ftp|https?):|/etc/ [NC,OR]
    RewriteCond %{QUERY_STRING} (ftp|https?):|/etc/ [NC]
    RewriteRule .* - [F,L]

    ##
    # Compress .js and .css files
    ##
    AddEncoding gzip .gz
    <FilesMatch "\.js\.gz$">
      
    AddType "text/javascript" .gz
    </FilesMatch>
    <
    FilesMatch "\.css\.gz$">
      
    AddType "text/css" .gz
    </FilesMatch>
    RewriteCond %{HTTP:Accept-encodinggzip
    RewriteCond 
    %{REQUEST_FILENAME} \.(js|css)$
    RewriteCond %{REQUEST_FILENAME}.gz -f
    RewriteRule 
    ^(.*)$ $1.gz [QSA,L]

    ##
    # Rewrite TYPOlight URLs
    ##
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    .*\.htmlindex.php [L
    Mit der neuen dagegen nur 87/100:
    PHP-Code:
    AddType x-mapp-php5 .php

    ##
    # Contao Open Source CMS
    # Copyright (C) 2005-2010 Leo Feyer
    #
    # Formerly known as TYPOlight Open Source CMS.
    #
    # This program is free software: you can redistribute it and/or
    # modify it under the terms of the GNU Lesser General Public
    # License as published by the Free Software Foundation, either
    # version 3 of the License, or (at your option) any later version.

    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    # Lesser General Public License for more details.

    # You should have received a copy of the GNU Lesser General Public
    # License along with this program. If not, please visit the Free
    # Software Foundation website at <http://www.gnu.org/licenses/>.
    #
    # PHP version 5
    # @copyright  Leo Feyer 2005-2010
    # @author     Leo Feyer <http://www.contao.org>
    # @license    LGPL
    ##

    <IfModule mod_deflate.c>

      
    ##
      # Use mod_deflate to compress JavaScript, CSS and XML files. Do not add
      # PHP and HTML files, because those have already been compressed by Contao.
      ##
      
    <FilesMatch "\.(css|js|xml)$">
        
    SetOutputFilter DEFLATE
      
    </FilesMatch>

    </
    IfModule>

    <
    IfModule mod_headers.c>

      
    ##
      # Add a Vary Accept-Encoding header for the compressed resources. If you
      # modify the file types above, make sure to change them here accordingly.
      ##
      
    <FilesMatch "\.(js|css|xml|gz)$">
        
    Header append Vary Accept-Encoding
      
    </FilesMatch>

    </
    IfModule>

    <
    IfModule mod_expires.c>
      
    ExpiresActive On

      
    ##
      # Specify an expiration one week in the future for images, JavaScripts and
      # CSS files (as recommended by Google Page Speed). Edit or remove the lines
      # to set up your own expiration logic.
      ##
      
    ExpiresByType image/png A604800
      ExpiresByType image
    /gif A604800
      ExpiresByType image
    /jpg A604800
      ExpiresByType image
    /jpeg A604800
      ExpiresByType text
    /javascript A604800
      ExpiresByType application
    /x-javascript A604800
      ExpiresByType text
    /css A604800

    </IfModule>

    <
    IfModule mod_rewrite.c>
      
    RewriteEngine On

      
    ##
      # Set the RewriteBase if your Contao installation is in a subdirectoy and
      # the rewrite rules are not working properly. Usage examples:
      #
      #   RewriteBase /contao-2.9.0
      #   RewriteBase /path/to/contao
      #
      # Uncomment the following line to set the RewriteBase.
      ##
      
    RewriteBase /

      
    ##
      # Contao usually does not pass absolute URLs via GET, therefore the
      # following rules block all requests that try to pass a URL or the /etc/
      # directory as parameter (malicious requests).
      ##
      
    RewriteCond %{REQUEST_URI} (ftp|https?):|/etc/ [NC,OR]
      
    RewriteCond %{QUERY_STRING} (ftp|https?):|/etc/ [NC]
      
    RewriteRule .* - [F,L]

      
    ##
      # Uncomment the following lines and replace "domain.com" with your domain
      # name to redirect requests without "www" to the correct domain. 
      ##
      #RewriteCond %{HTTP_HOST} ^domain\.com [NC]
      #RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

      ##
      # Do not rewrite requests for static files or folders such as style sheets,
      # images, movies or text documents.
      ##
      
    RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond 
    %{REQUEST_FILENAME} !-d

      
    ##
      # By default, Contao adds ".html" to the generated URLs to simulate static
      # HTML documents. If you change the URL suffix in the back end settings, make
      # sure to change it here accordingly!
      #
      #   RewriteRule .*\.html$ index.php [L]   # URL suffix .html
      #   RewriteRule .* index.php [L]          # No URL suffix
      #   RewriteRule .*\.txt$ index.php [L]    # URL suffix .txt
      #
      # If you are using mod_cache, it is recommended to use the RewriteRule below,
      # which adds the query string to the internal URL:
      # 
      #   RewriteRule (.*\.html)$ index.php/$1 [L]
      #
      # Note that not all environments support mod_rewrite and mod_cache!
      ##
      
    RewriteRule .*\.htmlindex.php [L]

    </
    IfModule
    Bei letzterem kommt der Hinweis: "Enable Compression" hinzu.

  16. #16
    Contao-Nutzer Avatar von redbecks
    Registriert seit
    19.06.2009.
    Ort
    Bremen
    Beiträge
    81

    Standard

    Zitat Zitat von SunBlack Beitrag anzeigen
    @redbecks: Wie kannst du das bei 1und1 reproduzieren? Ich konnte bei meinem 1und1-Account ersteinmal keine Probleme feststellen.
    also auftreten tut es wenn ich die anpassungen in der .htaccess zum blocken von PHP- und HTML-Dateien der subdomains mache dann erhalte ich halt immer ein 500er fehler. bei mir lokal funktioniert es.

    dass es an apache liegt (bis zur version 2.0) habe ich irgendwo gelesen und lokal funktioniert es mit (apache 2.2). deshalb ist es für mich relativ eindeutig. vermutlich hast du bereits eine neuere version bei 1und1, wenn das bei dir funktioniert.

  17. #17
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Zitat Zitat von redbecks Beitrag anzeigen
    probleme gab es bei mir als ich in der .htaccess den teil mit der 404 weiterleitung eingebaut habe. da 1und1 noch ein etwas älteren apache laufen hat
    Es gibt für solche Fälle noch einen alternativen Ansatz, der auf allen Unix-Servern funktionieren sollte. Man erstellt sich ein Unterverzeichnis namens "static" in seiner Contao-Installation und legt dort drei Symlinks auf "tl_files", "system" und "plugins" an. Anschließend routet man die Subdomains auf dieses Verzeichnis.

    Code:
    TL_ROOT/static/tl_files -> ../tl_files
    TL_ROOT/static/system -> ../system
    TL_ROOT/static/plugins -> ../plugins
    Dadurch kann man sich die RewriteRules für den 404-Fehler sparen, weil außer den drei verlinkten Ordnern keine aufrufbaren Dateien vorhanden sind. Dann noch eine Datei "static/.htaccess" anlegen und dort folgendes hinein schreiben:

    Code:
    RewriteEngine Off
    Ich habe diesen Lösungsansatz nur nicht als Standard empfohlen, weil auf Windows-Servern soweit ich weiß keine Symlinks existieren und auch nicht jedes FTP-Programm das Anlegen derselben unterstützt.

  18. #18
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    ich habe die Version 1.1.0 der Erweiterung googleanalytics online gestellt, die nun auch das Setzen des Domainnamen für das Tracking-Cookie unterstützt. Damit kann die Anleitung auch von denjenigen umgesetzt werden, die diese Erweiterung einsetzen.

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  19. #19
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi Leo,

    wie du in einem älteren Thread schon mal treffend festgestellt hast, sind Ladezeiten nicht nur von deinem Server sondern auch von vielen anderen Faktoren abhängig. Daher gehe ich davon aus, dass Google sich mehr nach objektiven Kriterien (also den Punkten aus dem Test) richtet und nicht nach der realen Ladezeit.

    Allerdings sehe ich noch nicht den Punkt wo deine Seite durch die Anleitung nicht mehr valide sein sollte. Und den Rest bekommst du doch sicher auch mit etwas Tuning in den Griff, ist ja schließlich dein Server, oder? ;-)

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  20. #20
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Moin moin

    also folgendes habe ich in meinen Dateien..

    subdomainhack/config/config.php
    PHP-Code:
    $GLOBALS['TL_HOOKS']['outputFrontendTemplate'][] = array('MySubdomainHack''addStaticUrl'); 
    subdomainhack/MySubdomainHack.php
    PHP-Code:
    <?php
    class MySubdomainHack
    {
        public function 
    addStaticUrl($strText,$strTemplate)
        {
            if(
    $strTemplate != 'fe_page')
            {
                return 
    $strText;    
            }
            
            
    $arrSearch = array
            (
                
    '="tl_files/',
                
    '="system/',
                
    '="plugins/',         
            );
            
            
    $arrReplace = array
            (
                
    '=http://st1.hartl-racing.de/tl_files/',
                
    '=http://st2.hartl-racing.de/system/',            
                
    '=http://st3.hartl-racing.de/plugins/',        
            );
            
            return 
    str_replace($arrSearch$arrReplace$strText);
        }

    ?>

    Fehlermeldung
    Code:
    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00c5cff/system/modules/subdomainhack/config/config.php:3) in /www/htdocs/w00c5cff/system/libraries/Template.php on line 186
    
    #0 /www/htdocs/w00c5cff/system/libraries/Template.php(186): __error(2, 'Cannot modify h...', '/www/htdocs/w00...', 186, Array)
    #1 /www/htdocs/w00c5cff/system/modules/frontend/FrontendTemplate.php(184): Template->output('Content-Type: t...')
    #2 /www/htdocs/w00c5cff/system/modules/frontend/PageRegular.php(136): FrontendTemplate->output()
    #3 /www/htdocs/w00c5cff/index.php(198): PageRegular->generate()
    #4 /www/htdocs/w00c5cff/index.php(321): Index->run(Object(DB_Mysql_Result))
    #5 {main}


    htaccess
    Code:
    <IfModule mod_deflate.c>
      <FilesMatch "\.(css|js|xml)$">
        SetOutputFilter DEFLATE
      </FilesMatch>
    </IfModule>
    
    <IfModule mod_headers.c>
      <FilesMatch "\.(js|css|xml|gz)$">
        Header append Vary Accept-Encoding
      </FilesMatch>
    </IfModule>
    
    <IfModule mod_expires.c>
      ExpiresActive On
      ExpiresByType image/png A604800
      ExpiresByType image/gif A604800
      ExpiresByType image/jpg A604800
      ExpiresByType image/jpeg A604800
      ExpiresByType text/javascript A604800
      ExpiresByType application/x-javascript A604800
      ExpiresByType text/css A604800
    </IfModule>
    
    
    #Safe Modew Heck
    AddHandler php-fastcgi .php
    
    
    ##
    # Rewrite base
    ##
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^hartl-racing\.de$
    RewriteRule ^(.*)$ http://www.hartl-racing.de/$1 [R=301,L]
    
    ##
    # Block malicious requests
    ##
    RewriteCond %{REQUEST_URI} (ftp|https?):|/etc/ [NC,OR]
    RewriteCond %{QUERY_STRING} (ftp|https?):|/etc/ [NC]
    RewriteRule .* - [F,L]
    
    ##
    # Compress .js and .css files
    ##
    AddEncoding gzip .gz
    <FilesMatch "\.js\.gz$">
      AddType "text/javascript" .gz
    </FilesMatch>
    <FilesMatch "\.css\.gz$">
      AddType "text/css" .gz
    </FilesMatch>
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME} \.(js|css)$
    RewriteCond %{REQUEST_FILENAME}.gz -f
    RewriteRule ^(.*)$ $1.gz [QSA,L]
    
    ##
    # Rewrite TYPOlight URLs
    ##
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*\.html)$ index.php/$1 [L]
    
    
    ##
    # Explicitly send a 404 header if a file on st[0-9].hartl-racing.de is not
    # found. This will prevent the start page (empty URL) from being loaded.
    ##
    RewriteCond %{HTTP_HOST} ^st[0-9]\.hartl-racing\.de [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* - [R=404,L]
    
    
    ##
    # Do not dispatch dynamic resources via st[0-9].hartl-racing.de.
    ##
    RewriteCond %{HTTP_HOST} ^st[0-9]\.hartl-racing\.de [NC]
    RewriteCond %{REQUEST_FILENAME} \.(php|html)$
    RewriteRule .* - [R=404,L]
    Geändert von Kahmoon (09.08.2010 um 09:31 Uhr)

  21. #21
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Zitat Zitat von leo.unglaub Beitrag anzeigen
    Setze ich alle von Google her um bekomme ich zwar 98 Punkte, jedoch ist die Seite A: langsammer
    Um wie viel ist die Seite denn langsamer? Und vor allem woran liegt es?

  22. #22
    Contao-Nutzer Avatar von mac123
    Registriert seit
    20.04.2010.
    Beiträge
    20
    Partner-ID
    6128

    Standard

    Hallo Kahmoon,
    PHP-Code:
    $arrReplace = array
            (
                
    '=http://st1.hartl-racing.de/tl_files/',
                
    '=http://st2.hartl-racing.de/system/',            
                
    '=http://st3.hartl-racing.de/plugins/',        
            ); 
    Hier fehlen Anführungszeichen vor dem http

  23. #23
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Oha...aber noch immer ein Fehler

    Code:
    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00c5cff/system/modules/subdomainhack/config/config.php:3) in /www/htdocs/w00c5cff/system/libraries/Template.php on line 186
    
    #0 /www/htdocs/w00c5cff/system/libraries/Template.php(186): __error(2, 'Cannot modify h...', '/www/htdocs/w00...', 186, Array)
    #1 /www/htdocs/w00c5cff/system/modules/frontend/FrontendTemplate.php(184): Template->output('Content-Type: t...')
    #2 /www/htdocs/w00c5cff/system/modules/frontend/PageRegular.php(136): FrontendTemplate->output()
    #3 /www/htdocs/w00c5cff/index.php(198): PageRegular->generate()
    #4 /www/htdocs/w00c5cff/index.php(321): Index->run(Object(DB_Mysql_Result))
    #5 {main}

  24. #24
    Contao-Nutzer Avatar von mac123
    Registriert seit
    20.04.2010.
    Beiträge
    20
    Partner-ID
    6128

    Standard

    Ist in der config.php (Zeile 3) vielleicht ein Absatz? Da muss irgendwas ausgegeben werden.
    Schreib mal per Hand alles neu.

  25. #25
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Hallo Kahmoon,
    muss ich doch mal irgendwann selber probieren.
    Gibts da noch mehr Fehlermeldungen? Normalerweise steht da noch mehr, also der Grund warum er dir ne Meldung sendet vor dem Header.
    Geändert von BugBuster (09.08.2010 um 10:13 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  26. #26
    Contao-Nutzer Avatar von mac123
    Registriert seit
    20.04.2010.
    Beiträge
    20
    Partner-ID
    6128

    Standard

    BugBuster, ich glaube nicht. Dann werden die URLs nicht richtig ersetzt.
    Gruß Marco

  27. #27
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Zitat Zitat von mac123 Beitrag anzeigen
    Ist in der config.php (Zeile 3) vielleicht ein Absatz? Da muss irgendwas ausgegeben werden.
    Schreib mal per Hand alles neu.
    Hat geholfen...danke. Allerdings nimmt er die Subdomains noch nicht. Stimmt meine htaccess? Habs eigentlich wie beschrieben gemacht.

  28. #28
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Habs grad mal in meiner IDE simuliert, der Syntax ist OK und funktioniert (nach dem " Einbau bei arrReplace)

    Es könnte nun sein, das du die beiden Dateien als UFT-8 mit BOM gespeichert hast, das darf nicht sein.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  29. #29
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Hat geholfen...danke. Allerdings nimmt er die Subdomains noch nicht. Stimmt meine htaccess? Habs eigentlich wie beschrieben gemacht.
    Nicht?
    Und was ist das?
    Code:
    http://st3.hartl-racing.de/plugins/mediabox/js/mediabox.js
    http://st1.hartl-racing.de/tl_files/graphix/logo_hartl.png
    Sieht doch gut aus?
    Geändert von BugBuster (09.08.2010 um 10:27 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  30. #30
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Jepp, laden tut er es wohl korrekt...aber er meckert es nach wie vor an!?

    Andere Frage...wie tauchen denn diese Bilder später im Google Bildindex auf? Auch mit der Subdomain oder? Sollte beim direkten Aufruf der Subdomain auf die normale Seite umgelenkt werden?

    Gruß
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Kahmoon (09.08.2010 um 10:42 Uhr)

  31. #31
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Übrigens, falls es jemanden interessiert: Das Umschreiben der Pfadangaben für statische Ressourcen ("tl_files"-Verzeichnis, Plugins, Framework, Module) lässt sich auch mit der Erweiterung [cdn] von Andreas Schempp bewerkstelligen - beschränkt allerdings auf nur eine URL. Diese CDN-URL kann dann entweder auf ein "richtiges" Content-Delivery-Network zeigen (für die Deluxe-Variante) oder aber auch nur als Subdomain der eigenen Webseite eingerichtet sein ("Poor Man's CDN")
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  32. #32
    Contao-Urgestein Avatar von FloB
    Registriert seit
    19.06.2009.
    Ort
    Sonnensystem
    Beiträge
    1.618

    Standard

    Zitat Zitat von leo Beitrag anzeigen
    Ich habe diesen Lösungsansatz nur nicht als Standard empfohlen, weil auf Windows-Servern soweit ich weiß keine Symlinks existieren und auch nicht jedes FTP-Programm das Anlegen derselben unterstützt.
    AFAIK gibt es seit Windows 7, womöglich schon Vista, Symlinks. Der Einwand mit den Symlinks ist zwar berechtigt, trotzdem würde ich in dem Artikel die alternative Methode ebenfalls nennen, sozusagen die "Advanced" Variante.
    So long,
    FloB since Nov. 2007 +706P +115P and counting

  33. #33
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Jepp, laden tut er es wohl korrekt...aber er meckert es nach wie vor an!?
    Nach dem Ändern der Servereinstellungen muss man natürlich den Browsercache leeren und anschließen den Page Speed Score neu berechnen lassen.

  34. #34
    Contao-Urgestein Avatar von ways2web
    Registriert seit
    23.03.2010.
    Ort
    Berlin
    Beiträge
    1.698
    User beschenken
    Wunschliste

    Standard

    wunderhübsche anleitung !!!

    ich hab mein pagespeed von 88 auf 94 angehoben... das ist doch mal was..
    und dabei hab ich noch nicht mal meine stylesheets zusammengefasst...

    danke community !

  35. #35
    Contao-Nutzer Avatar von redbecks
    Registriert seit
    19.06.2009.
    Ort
    Bremen
    Beiträge
    81

    Standard

    Zitat Zitat von leo Beitrag anzeigen
    Es gibt für solche Fälle noch einen alternativen Ansatz, der auf allen Unix-Servern funktionieren sollte. Man erstellt sich ein Unterverzeichnis namens "static" in seiner Contao-Installation und legt dort drei Symlinks auf "tl_files", "system" und "plugins" an. Anschließend routet man die Subdomains auf dieses Verzeichnis.
    Danke für die Alternative, lokal funktioniert mal wieder alles super, doch online kann ich leider keine Symlinks anlegen. Vermutlich fehlen mir als kleiner Kunde bei 1und1 dazu einfach mal wieder die Rechte.

  36. #36
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Zitat Zitat von leo Beitrag anzeigen
    Nach dem Ändern der Servereinstellungen muss man natürlich den Browsercache leeren und anschließen den Page Speed Score neu berechnen lassen.
    Hab ich schon gemacht...is schon Standard bei Seitenreload . War aber nicht weg...

    Kann mir noch jemand die Frage bezüglich den Google Bildindex sagen? Und ob man die Subdomains beim Direktaufruf auf die Hauptdomain umbiegen sollte?

    Gruß

  37. #37
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wo findet man denn eigentlich die Empfehlung von Google, statische Ressourcen für die Dauer von einer Woche zu cachen? In den "Performance Best Practices" von Google Page Speed steht diesbezüglich u.a.
    Set caching headers aggressively for all static resources. [...] Set Expires to a minimum of one month, and preferably up to one year, in the future.
    Und bezüglich "Vary Header":
    Set the Vary header correctly for Internet Explorer.
    Internet Explorer does not cache any resources that are served with the Vary header and any fields but Accept-Encoding and User-Agent. To ensure these resources are cached by IE, make sure to strip out any other fields from the Vary header, or remove the Vary header altogether if possible.
    Müsste man demzufolge dann nicht in der ".htaccess.default" anstelle von
    PHP-Code:
    Header append Vary Accept-Encoding 
    den "Vary Header" neu setzen
    PHP-Code:
    Header set Vary Accept-Encoding 
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  38. #38
    Contao-Fan
    Registriert seit
    22.11.2009.
    Ort
    14943 Luckenwalde
    Beiträge
    373

    Frage

    haloechen ...

    nur mal so anfragen

    - Leverage browser caching
    - Serve static content from a cookieless domain

    was muss ich denn noch einstellen damit das funzt, habe das modul, und die subdomains angelegt die htaccess editiert. seite lauft auch aber diese beiden sachen bekomm ich nicht hin

  39. #39
    Contao-Nutzer Avatar von aibiman
    Registriert seit
    09.01.2010.
    Beiträge
    10

    Standard

    Hallo zusammen,

    ich denke es würde sich evtl. anbieten das Thema "Frontend Performance" ganzheitlich zu betrachten und in einem eigenen Contao-Modul/Abschnitt zu vereinen.

    Die Empfehlungen der Firebug-Tools Pagespeed (Google) und YSlow (Yahoo) beruhen hauptsächlich auf Thesen von Steve Souders der erst bei Yahoo und dann bei Google angeheuert hat.

    Bekannte Bücher von Steve Souders zu diesem Thema sind "High Perfromance Web Sites" und "Even Faster Web Sites".
    Weitere Tipps sind auch auf http://stevesouders.com/ zu finden.

    Nachfolgend die wichtigsten Punkte (ich habe diese in unterschiedliche Themengebiete eingeteilt) die für eine gute Performance verantwortlich sind:


    HTTP-Requests:
    • Reduzierung HTTP-Requests
    • Nutzen von Domain sharding/CDN
    • Vermeiden von Redirects


    Transfer-Volumen:
    • GZip-Komprimierung
    • Minfiying von JS/CSS-Dateien
    • Optimierung Bilder


    Browser-Caching
    • Verwendung von Expires-Header
    • Verwendung von ETags


    CSS/JS
    • CSS im <head>
    • JS am Ende des <body>
    • JS und CSS in Dateien auslagern
    • Vermeiden von CSS-Expressions


    Sonstige
    • DNS Lookups vermeiden
    • Entfernen von doppelten Daten
    • Caching von AJAX-Requests
    • Weniger DOM-Elemente


    Nachfolgend die aus meiner Sicht relativ "einfach" integrierbare Punkte in Contao und was dafür
    getan werden müsste:

    - Reduzierung HTTP-Requests
    - Minfiying von JS/CSS-Dateien
    Contao:
    Zusammenfassung von CSS- und JS-Dateien
    • Möglichkeit zur Definition von CSS- und JS-Dateien die zu jeweils einer Datei zusammengefasst werden.
    • Möglichkeit zur Auswahl, ob diese Datei "geminifyed" werden soll
    • Per Knopfdruck Generierung dieser Datei


    - Nutzen von Domain sharding/CDN
    Contao:
    • Möglichkeit in Contao der Definition von Urls die genutzt werden soll z. B. static.mydomain.de, media.mydomain.de
    • Zuweisung von Urls zu bestimmten Dateitypen z. B. css/js > static.mydomain.de, img/cache > media.mydomain.de


    - GZip-Komprimierung
    - Verwendung von Expires-Header
    - Verwendung von ETags
    - Nutzen von Domain sharding/CDN
    Contao:
    • Möglichkeit in Contao enstpr. Einstellungen zu definieren
    • Per Knopfdruck Generierung der entspr. .htaccess-Codeschnipsel oder gleich der .htaccess-Datei


    Bei Verwendung der Expire-Headers ergibt sich folgendes Problem:
    Wird eine Datei vor Ablaufdatum geändert, wird sie nicht vom Client aktualisiert.

    Diesem Verhalten kann man mit einem sogenannten "Cache-Buster" begegnen:

    Cache-Buster: zwei Varianten:

    1. Versionsnummer als GET-Parameter
    http://www.mydomain/js/base.js?v=R.05.2010

    > Einige Web-Proxys (z. B. Squid) cachen dies nicht

    2. Versionsnummer im Verzeichnisnamen
    http://www.mydomain/js/R.05.2010/base.js

    > .htaccess
    RewriteRule js\/.*\/(.*)\.js /js/$1\.js [L]

    Contao:
    • Möglichkeit in Conato zum setzen einer Release-Namens z. B. <frei wählbarer Name> + <Contao-Version>
    • Der Release-Name müsste dann an allen betroffenen Stellen (CSS/JS, Systemgrafiken, etc.) in den Url's eingebunden werden
    • Bei einer Änderung würde dann einfach der Release-Name geändert werden und somit würde der Expire-Header ungültig, da die "alten" Dateien auf einen anderen Pfad zeigen würden.


    Ich denke mit den obengenannten Vorschlägen hätte Contao ein wichtiges Feature integriert, welches den meisten Konkurrenten fehlt.


    Viele Grüße
    Steffen

  40. #40
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Zitat Zitat von leo.unglaub Beitrag anzeigen
    von meinen 0,4* Sekunden wächst die Zeit auf 0,6 Sekunden an. Was genau die Gründe sind kann ich leider noch nicht sagen
    Ich tippe vielmehr auf den Apache. Zum Verständnis: HTTP/1.1 legt fest, dass der Browser maximal 2 Verbindungen pro Hostname erlauben soll (bei vielen modernen Browsern sind es inzwischen mehr). Bei einer Seite mit 20 Dokumenten würden also 10 Mal hintereinander 2 Dokumente angefragt. Der Trick mit den Subdomains soll diese "Sperre" umgehen, indem er 4 x 2 Verbindungen ermöglicht. Bei 20 Dokumenten würden also 2,5 Mal hintereinander 8 Dokumente angefragt.

    Soweit die Theorie im Browser. Für den Apache bedeuten 8 gleichzeitige Verbindungen natürlich eine andere Last als 2 (Stichwort "MaxClients"). Je nachdem wie der Server konfiguriert ist und wie gut er ausgelastet ist, hat er unter Umständen gar keine 8 Prozesse mehr frei und ein Teil der Anfragen landet in der Queue. In diesem Fall bringt der "Hack" gar nichts, sondern kostet nur zusätzlichen Verbindungsaufbau und DNS-Lookups. Die Folge ist logischerweise eine höhere Ladezeit.

    Man darf also nicht nur blind den Code kopieren und einfügen, sondern man muss die Zusammenhänge verstehen und die Systemkomponenten optimal aufeinander abstimmen. Deswegen habe ich ja auch extra am Anfang des Artikels darauf hingewiesen, dass nicht alle Empfehlungen des Page Speed Plugins in der Praxis sinnvoll sind.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. G Page Speed - Leverage browser caching
    Von phreak im Forum Sonstiges zu Contao
    Antworten: 13
    Letzter Beitrag: 14.06.2011, 14:28
  2. Contao und Page Rank
    Von Sigi im Forum Sonstiges zu Contao
    Antworten: 3
    Letzter Beitrag: 01.10.2010, 15:36
  3. Antworten: 7
    Letzter Beitrag: 30.11.2009, 12:55
  4. System-Log Einträge: No active page for page ID "#main
    Von Bobi im Forum Sonstiges zu Contao
    Antworten: 9
    Letzter Beitrag: 17.08.2009, 15:49

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •