.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 Domain.com/main (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)


    Code
    1. RewriteEngine on
    2. RewriteCond %{REQUEST_URI} !^/+(admin|images)/?
    3. RewriteCond %{REQUEST_URI} !(\..{2,4})$
    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
    1. if(array_key_exists('section', $_GET) === FALSE)
    2. {
    3. $section = 'index';
    4. }
    5. else
    6. {
    7. $section = clean($_GET['section']);
    8. }
  • hi,
    danke für die Antwort, aber funktioniert nicht.


    bekomme nur :/


    Fatal error: Call to undefined function clean() in [B]/.../main.php on line XX
    [/B][B]wenn ich domain.at/index.php eingebe funktioniert die Startseite ... mhm[/B]

  • 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.

  • [GELÖST]


    OK,


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


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


    durch folgendes ersetzt:


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


    trotzdem Danke :)
    lg