.htaccess SEO URLS - Hilfe zu Fehler gesucht

  • hi
    habe momentan ein Problem.
    und zwar möchte ich meine Webseite SEO URL konform mittels .htaccess verwalten.

    ich habe grundsätzlich 2 files
    index.php
    main.php

    auf der Index.php gelangt man direkt via Domain und ist quasi die Startseite/Landingpage

    von der aus kommt man auf die main.php via /main.php?section=main

    nun, zum Problem...
    linke ich nun auf http://Domain.com/main (http://Domain.com/kontakt ect) funktioniert dies wunderbar.

    jedoch wenn ich nun standardmässig die Domain öffne läd er automatisch die main.php ohne content
    wie muss ich nun die htaccess anpassen um quasi die index zu ignorieren

    mein bisheriges Codeschnippsel (dass auch css includes beeinhaltet sollte, um diese bei seourl auch zu includen)

    Apache Configuration
    RewriteEngine on
    
    
    
    
    RewriteCond %{REQUEST_URI} !^/+(admin|images)/?
    RewriteCond %{REQUEST_URI} !(\..{2,4})$
     
    RewriteRule ^(.*)$ /main.php?section=$1&%1 [L]


    hoffe, dass hier einer ne Lösung zum Problem hat...

  • Am besten löst du das nicht mit der Rewrite Engine, sondern programmatisch in PHP. Also in php eine Standard-Section bestimmen, die geladen wird, wenn in der URL keine bestimmt wurde.

    So was in der Art:

    PHP
    if(array_key_exists('section', $_GET) === FALSE)
    {
        $section = 'index';
    }
    else
    {
        $section = clean($_GET['section']);
    }

    Einmal editiert, zuletzt von lukasn (9. November 2012 um 16:48)

  • Ach du... clean() ist auch keine Standardfunktion ;) Das war nicht als reinkopieren und geht gedacht, nur als beispiel wie man vorgehen könnte. Du solltest einfach aus Sicherheitsgründen nicht den $_GET Parameter direkt verwenden, sonder ihn erst noch irgendwie Validieren, das sollte die clean() versinnbildlichen.

  • OK, dachte ich mir fast...
    phu, diesbezügliche verbindung ist da noch etwas Neuland für mich... gg
    Mal schaun, momentan steh ich da etwas an. Vielleicht bekomm ich das noch irgendwie zum Laufen

  • [GELÖST]

    OK,

    habs nun doch über die .htaccess gelöst.
    Nun funktioniert es wunderbar, so wie es soll.

    Apache Configuration
    [COLOR=#333333]RewriteRule ^(.*)$ /main.php?section=$1&%1 [L]
    [/COLOR]

    durch folgendes ersetzt:

    Apache Configuration
    RewriteRule ^([a-zA-Z0-9-/]+)$ main.php?section=$1
    RewriteRule ^([a-zA-Z0-9-/]+)/$ main.php?section=$1

    trotzdem Danke :)
    lg