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

  • Gast-Avatar
    Ein Gast erstellte das Thema RewriteRule klappt einfach nicht vollständig.

    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

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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ja geil, danke..

    aber nur fürs verständniss..

    was machtn "RewriteCond"?

    danke

    Einen Kommentar schreiben:


  • Caterham
    antwortet
    .*/.+ 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]

    Einen Kommentar schreiben:

Lädt...
X