Ankündigung

Einklappen
Keine Ankündigung bisher.

RewriteRule klappt einfach nicht vollständig

Einklappen

Neue Werbung 2019

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

  • RewriteRule klappt einfach nicht vollständig

    ich weiß nicht wiso, aber ab 2 Variablen klappt rewriterule nicht:

    Code:
    RewriteEngine On
    RewriteRule ^(.*).html$ /index.php?site=$1 [L]
    
    RewriteRule ^(.*)/(.*).html$ /index.php?site=$2&action=$1 [L]
    
    RewriteRule ^(.*).html?(.*)&(.*)$ /index.php?site=$1&action=$2&b=$3 [L]
    
    RewriteRule ^(.*).html?(.*)&(.*)&(.*)$ /index.php?site=$1&action=$2&b=$3&c=$4 [L]
    also, beim ersten klappt ja noch alles!
    nur wenn 2 variablen drin sind nicht mehr..
    da klappt dann zwar noch die erste, aber die zweite nichtmehr und ich versteh nicht wiso..
    könnte mich bitte jemand aufklären??

    danke

  • #2
    .*/.+ sind sehr langsame, cpu-lastige und zugleich schlechte RegEx, - sie matchen alles. Jeder filepath, der auf .html endet, wird bereits durch die erste Rule gematched - die zweite Rule wird also nie erreicht werden.
    3 und 4 funktionieren daneben nicht, da du innerhalb der RewriteRule nicht auf den QueryString zugreifen kannst, vgl. Apache Manual. Das geht nur über eine Condition. Den vorhandenen QueryString könntest du jedoch per QSA-Flag anhängen.

    Code:
    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^([^&]+)&([^&]+)$
    RewriteRule ^([^./]+)\.html$ /index.php?site=$1&action=%1&b=%2 [L]
    RewriteCond %{QUERY_STRING} ^([^&]+)&([^&]+)&([^&]+)$
    RewriteRule ^([^/.]+)\.html$ /index.php?site=$1&action=%1&b=%2&c=%3 [L]
    RewriteRule ^([^./]+)\.html$ /index.php?site=$1 [L]
    RewriteRule ^([^/]+)/([^/.]+)\.html$ /index.php?site=$2&action=$1 [L]

    Kommentar


    • #3
      ja geil, danke..

      aber nur fürs verständniss..

      was machtn "RewriteCond"?

      danke

      Kommentar


      • #4
        Mit RewriteCond definierst du eine Bedingung, die erfüllt sein muss, damit die nachfolgenden RewriteRules ausgeführt werden.

        Kommentar

        Lädt...
        X