htaccess Problem, verschiedene Regeln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • htaccess Problem, verschiedene Regeln

    Hallo,

    ich habe ein kleines Problem in Sachen mod_rewrite im Zusammenhang mit suchmaschinenfreundlichem URL-Design. Ich habe schon vieles Versucht aber komme aktuell einfach nicht zu einer Lösung.

    Folgende ausgangssituation:

    .htaccess - Datei unter www. domain.de/

    Code:
    RewriteEngine on
    ## BEFEHL UM TATSAECHLICHE ORDNER (z. b. /admin/ nicht zu rewriten)
    RewriteCond %{REQUEST_URI} ^\/[^/]+$
    
    ## www.domain.de/kategorie1/ leitet um auf www.domain.de/category.php?name=kategorie1
    RewriteRule ^(.*)/$ category.php?name=$1
    
    ## www.domain.de/kategorie1/seite1.html leitet um auf www.domain.de/content.php?cat=kategorie1&url=seite1
    RewriteRule ^(.*)/(.*).html$ content.php?cat=$1&url=$2
    
    ## www.domain.de/frage_stellen.html leitet weiter auf www.domain.de/add_question.php
    RewriteRule frage_stellen.html$ add_question.php
    Das Weiterleiten der Kategorieseiten (Zeile 6 im Code) funktioniert, ebenfalls das Weiterleiten der einzelnen URLs / Seiten (Zeile 9 im Code). Was nicht funktioniert ist die Weiterleitung von bestimmten anweisungen auf bestimmte Seiten (s. Zeile 12 im Code) sowie die unmittelbare index.php unter www. domain.de/ erzeugt auch einen Fehler (Seite nicht gefunden).

    Des weiteren bin ich unschlüssig ob es für Zeile 3 nicht eine performantere Lösung gibt um tatsächliche Ordner unangetastet zu lassen. Ich habe hier zwar bereits den Ansatz "RewriteCond %{REQUEST_URI} !^/(admin)" gefunden, dieser funktioniert jedoch nicht.

    Das Problem ist dass immer wieder einzelne Sachen funktionieren, wenn ich Änderungen vornehme dann aber dafür andere Regeln wieder nicht greifen, kurzum gesgat gelingt es mir aktuell nicht alles zum funktionieren zu bringen.

    Würde mich über eine Hilfe sehr freuen und bedanke mich schonmal vorab.

    Grüße

  • #2
    Hallo,

    die Regel

    Code:
    RewriteRule ^(.*)/(.*).html$ content.php?cat=$1&url=$2
    passt auch auf http://example.com/frage_stellen.html, daher wird die folgende Regel gar nicht mehr berücksichtigt.

    Wenn du statt des * ein + nimmst, erzwingst du mindestens 1 Zeichen, was diese URL dann nicht mehr erfüllt.

    Code:
    RewriteRule ^(.[COLOR="Red"][B]+[/B][/COLOR])/(.*).html$ content.php?cat=$1&url=$2
    Andererseits sollte man ohnehin spezielle Regeln vor den allgemeineren notieren, weil es manchmal eben nicht so leicht zu durchschauen ist.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar

    Lädt...
    X