Vanilla 1.1.2 Forum von Lussumo. Weitere Informationen: Dokumentation, Community.

    • CommentAuthorb00n23
    • CommentTime01.04.2012 bearbeitet
     permalink
    Hi,
    Einige meiner URLs werden in Google Analytics mehrfach mit ?PHPSESSID= aufgeführt. Ich möchte doppelten Content vermeiden.

    Ich würde gerne wissen wie ich das Problem beseitigen kann und wie ich hinterher prüfen kann dass es funktioniert hat.

    Ich nutze: MODX Revolution 2.1.3-pl (traditional)

    Besipiele:

    http://www.free-mmo.com/online-games/archeage.html?PHPSESSID=a14499cc2ee4623679364156b19f455e
    http://www.free-mmo.com/online-games/archeage.html?PHPSESSID=61b7b9977aa7afc679ee6955338df46e

    Anscheinend gibt es das selbe Problem auch bei modx.com
    http://forums.modx.com/index.php?PHPSESSID=4900f0b3c14c30261bc626ff42bd1773&/board,378.0.html
    ich habe schon einiges Versucht bin als Laie jedoch nicht erfolgreich gewesen.

    Was ich bisher Versucht hab (nicht erfolgreich):
    1. Eintrag in die .htaccess
    php_flag session.use_trans_sid off
    php_flag session.use_only_cookies on

    Wenn ich das mache bekomme ich nen 500 Error
    Hier der Code:
    # MODX supports Friendly URLs via this .htaccess file. You must serve web
    # pages via Apache with mod_rewrite to use this functionality, and you must
    # change the file name from ht.access to .htaccess.
    #
    # Make sure RewriteBase points to the directory where you installed MODX.
    # E.g., "/modx" if your installation is in a "modx" subdirectory.
    #
    # You may choose to make your URLs non-case-sensitive by adding a NC directive
    # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]

    RewriteEngine On
    RewriteBase /


    # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
    #RewriteCond %{HTTP_HOST} .
    #RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
    #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
    #
    # or for the opposite domain.com -> www.domain.com use the following
    # DO NOT USE BOTH
    #
    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} !^www\.free-mmo\.com [NC]
    RewriteRule (.*) http://www.free-mmo.com/$1 [R=301,L]



    # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
    # https://www.domain.com when your cert only allows https://secure.domain.com
    #RewriteCond %{SERVER_PORT} !^443
    #RewriteRule (.*) https://example-domain-please-change.com.com/$1 [R=301,L]



    # The Friendly URLs part
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]



    # Make sure .htc files are served with the proper MIME type, which is critical
    # for XP SP2. Un-comment if your host allows htaccess MIME type overrides.

    #AddType text/x-component .htc



    # If your server is not already configured as such, the following directive
    # should be uncommented in order to set PHP's register_globals option to OFF.
    # This closes a major security hole that is abused by most XSS (cross-site
    # scripting) attacks. For more information: http://php.net/register_globals
    #
    # To verify that this option has been set to OFF, open the Manager and choose
    # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
    # for "register_globals". The Local Value should be OFF. If the Master Value
    # is OFF then you do not need this directive here.
    #
    # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
    #
    # Your server does not allow PHP directives to be set via .htaccess. In that
    # case you must make this change in your php.ini file instead. If you are
    # using a commercial web host, contact the administrators for assistance in
    # doing this. Not all servers allow local php.ini files, and they should
    # include all PHP configurations (not just this one), or you will effectively
    # reset everything to PHP defaults. Consult www.php.net for more detailed
    # information about setting PHP directives.

    #php_flag register_globals Off


    # For servers that support output compression, you should pick up a bit of
    # speed by un-commenting the following lines.

    #php_flag zlib.output_compression On
    #php_value zlib.output_compression_level 5

    # The following directives stop screen flicker in IE on CSS rollovers. If
    # needed, un-comment the following rules. When they're in place, you may have
    # to do a force-refresh in order to see changes in your designs.

    #ExpiresActive On
    #ExpiresByType image/gif A2592000
    #ExpiresByType image/jpeg A2592000
    #ExpiresByType image/png A2592000
    #BrowserMatch "MSIE" brokenvary=1
    #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
    #BrowserMatch "Opera" !brokenvary
    #SetEnvIf brokenvary 1 force-no-vary

    php_flag session.use_trans_sid off
    php_flag session.use_only_cookies on


    2.Plugin
    Pluginname: PHPSESSID-redirect
    Plugin Code:
    <?php
    //check we are acting on the right system event - in this case onWebPageInit
    switch($modx->event->name){
    case 'OnWebPageInit':
    //check if we have the PHPSESSID parameter in our querystring
    if (isset($_GET['PHPSESSID'])) {
    //if so, strip it out
    $requesturi = preg_replace('/(&|\?)PHPSESSID=[^&]+/','',$_SERVER['REQUEST_URI']);
    $requesturi = preg_replace('/(\?)$/',"",$requesturi);
    //give Google a 301 response so it knows this redirect to our clean url is permanent
    header("HTTP/1.1 301 Moved Permanently");
    //redirect to our clean URL
    header("Location: http://".$_SERVER['HTTP_HOST'].$requesturi);
    exit;
    }
    break;
    }

    Hier war ich mir nicht sicher ob ich im Template das Plugin aufrufen muss, daher hab ich es nicht gemacht.

    Was ich an Infos bisher gefunden hab waren diese beiden Quellen:
    http://www.hyper-typer.com/news/modx-organic-seo-php-session-tracking?PHP

    http://www.seomoz.org/ugc/removing-phpsessid-from-an-url
    • CommentAuthorb00n23
    • CommentTime02.04.2012 bearbeitet
     permalink
    habs gelöst

    in die config.core.php im obersten Ordner folgenden Eintrag ergänzt



    <?php
    if (isset($_GET['PHPSESSID']))
    {
    $requesturi = preg_replace('/\?PHPSESSID=[^&]+/',"",$_SERVER['REQUEST_URI']);
    $requesturi = preg_replace('/&PHPSESSID=[^&]+/',"",$requesturi);
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://".$_SERVER['HTTP_HOST'].$requesturi);
    exit;
    }
    ?>