tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Raisch
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
315
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Hallo Community,

    ich habe folgendes Problem, ich habe bis dato immer meine Webseite mit www.meinedomain.de/index.php?seite=foo aufgerufen.
    So weit so gut dafür habe ich folgendes Script in meine index.php aufgerufen.

    PHP-Code:
                            $error false;
                                if( empty(
    $_GET['modul']))
                                    {
                                    
    $_GET['modul'] = '/news';
                                    }
    /*                            elseif (empty($_GET['action']))
                                    {
                                    $_GET['action'] = '';
                                    }
    */                            
    if( strpos($_GET['modul'], '..') !== false )
                                    {
                                    
    $error true;
                                    }
                                if( !
    $error && ($absPath realpath('php/'.$_GET['modul'].'/index.php')) !== false )
                                    {
                                    include(
    $absPath);
                                    } else {
                                        
    test_var($absPath);
                                    include(
    'fehler/error.php');
                                             } 
    Das klappt auch einwandfrei etc.
    Jetzt wollte ich mich mal ein bisschen mit SEO und so beschäftigen damit ich meine seite dann auch aufrufen kann mit www.meinedomain.de/foo.
    Das klappt mit obigem Script auch sehr gut. Wen ich jetzt aber etwas in mein Gästebuch eintragen möchte, dann möchte ich das er beim abschicken folgenden Link aufruft

    www.meinedomain.de/gaestebuch/eintragen

    meine ordner struktur sieht so aus
    index.php
    --php
    -----gaestebuch
    --------index.php

    also ich habe im ordner gaestebuch eine index.php liegen auf die er zugreifen soll.

    Jetzt habe ich mit .htaccess dank euch mir folgendes zusammen gestrickt

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?modul=$1 [NC]
    RewriteRule ^(.*)/(.*)$ index.php?modul=$1&action=$2 [NC]
    RewriteRule ^(.*)/seite/(.*)$ index.php?modul=$1&action=$2 [NC,L]

    und schon wird keine script mehr gefunden und die css wird auch nicht mehr angewendet.
    wen ich jetzt

    Code :
    1
    2
    3
    4
    5
    6
    
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?modul=$1 [NC]
    RewriteRule ^(.*)/seite/(.*)$ index.php?modul=$1&action=$2 [NC,L]

    in die .htaccess eintrage werden zumindestens die haupt scripte wieder gestartet. Aber die action wird grundlegend übersprungen.
    Ein var_dump() hat ergeben das wen ich nur das modul aufrufe alles wunderbar klappt ich es steht also in $_GET['modul'] das passende Modul drin, wen ich jetzt eine action aufrufe, dann wird das modul mit index.php überschrieben aber in action steht die richtige aktion drin die aufgerufen werden soll.

    Die frage ist jetzt wie kriege ich das raus.
    also das in $_GET['modul'] auch wirklich das modul steht
    und auch gleichzeitig in $_GET['action'] auch die aktion steht ?
    Bzw muss ich was an meinem Php script ändern ****?

    Ich hoffe ich habe mich verständlich ausgedrückt und Ihr könnt mir irgendwie helfen, weil solangsam verzweifel ich hier
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Du hast als ersten Eintrag
    RewriteRule ^(.*)$ index.php?modul=$1 [NC]

    Das leitet alles weiter. Die folgenden Rules kommen nicht mehr zum Zuge. Diese Zeile solltest du darum als letzte haben.
    chmee bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Hallo Yaslaw

    Also habe deinen Rat befolgt und habe meine .htaccess nun so geändert

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/(.*)$ index.php?modul=$1&action=$2 [NC]
    RewriteRule ^(.*)/seite/(.*)$ index.php?modul=$1&action=$2 [NC]
    RewriteRule ^(.*)$ index.php?modul=$1 [NC,L]

    Endeffekt ist, das ich mir das ganze design zerschossen habe und das sich keine Seite mehr öffnet
    Zu sehen ist das hier
    Geändert von Wipeout (22.01.12 um 02:06 Uhr)
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  4. #4
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    1. den Modifizierer L an alle Regeln ran damit er nicht weitergeht nach einem Match
    2. die Regel mit der Seite eine Zeile hoch
    3. sind die Regulären Ausdrücke sehr allgemein gehalten, leg ruhig die Zeichen fest die erlaub sein sollen
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([a-zA-Z0-9\-_]+)/seite/([a-zA-Z0-9\-_]+)$ index.php?modul=$1&action=$2 [NC,L]
    RewriteRule ^([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)$ index.php?modul=$1&action=$2 [NC,L]
    RewriteRule ^([a-zA-Z0-9\-_]+)$ index.php?modul=$1 [NC,L]
    RewriteRule ^$ index.php [NC,L]
    Versuch es mal damit.

    Gruß
    chmee bedankt sich. 

  5. #5
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Danke Raisch und allen anderen auch, genau das wars Nun klappt es ! Ich melde mich dann wen ich auf das nächste Problem stosse
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  6. #6
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Und da bin ich schon wieder
    Wen ich jetzt angebe www.meinedomain.de/gaestebuch/eintragen dann macht er das. So weit so gut. Wen ich jetzt aber die Seite wechseln möchte z.b. zu den News dann macht er nicht www.meinedomain.de/news sondern er macht www.meinedomain.de/gaestebuch/news wieso ist das so und wie kriege ich das wieder weg ?
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

  7. #7
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von Wipeout Beitrag anzeigen
    Und da bin ich schon wieder
    Wen ich jetzt angebe www.meinedomain.de/gaestebuch/eintragen dann macht er das. So weit so gut. Wen ich jetzt aber die Seite wechseln möchte z.b. zu den News dann macht er nicht www.meinedomain.de/news sondern er macht www.meinedomain.de/gaestebuch/news wieso ist das so und wie kriege ich das wieder weg ?
    Im Link statt:
    HTML-Code:
    <a href="/news">link</a>
    machst Du:
    HTML-Code:
    <a href="http://www.meinedomain.de/news">link</a>
    Oder html-Base im head angeben:
    HTML-Code:
    <base href="http://www.meinedomain.de" />
    Gruß
     

  8. #8
    Avatar von Wipeout
    Wipeout Wipeout ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Gladbeck
    Beiträge
    183
    Wohoooo nochmals vielen dank
     
    Wir hoffen immer auf den nächsten Tag, wahrscheinlich erhofft sich der nächste Tag einiges von uns. - Ernst R. Hauschka (dt. Essayist)

Ähnliche Themen

  1. HILFE! -> avast!-Virenscanner updatet nicht + Deinstallation klappt nicht! :-(
    Von Sumisu im Forum Security (Viren, Trojaner, Spam)
    Antworten: 1
    Letzter Beitrag: 20.08.08, 10:00
  2. Antworten: 0
    Letzter Beitrag: 15.08.07, 13:59
  3. Antworten: 0
    Letzter Beitrag: 15.08.07, 13:59
  4. script für Datenbankeintrag/abfrage klappt nicht - finde den Fehler nicht
    Von germanius im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 06.06.04, 14:49
  5. onload, mehrere funktionen - aufruf klappt nicht
    Von GoLLuM im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 13.02.04, 14:07