Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 33
  1. #1
    Mitglied
    Registriert seit
    May 2008
    Beiträge
    122

    Standard mod_rewrite htaccess

    Hallo gullis

    Ich wüßte gerne wie ich die htaccess für eine url setzen muss

    da ich noch recht neu bin und keine ahnung habe und ich in google die erklärungen nicht verstanden habe versuch ich es mal hier.

    ich würde gerne aus dieser url : index.php?section=support

    gerne diese machen : index.php/support

    soll laut google besser für den sucher modus sein ob da was dran ist weiß ich nicht!

    Danke schonmal für jede hilfe.

  2. #2
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Für URIs der Form
    Zitat Zitat von Freakdead85 Beitrag anzeigen
    index.php/support
    benötigst du nicht einmal mod_rewrite, es reicht, wenn auf dem Webserver die Path-Info-Unterstützung aktiv ist und dein Skript statt $_GET['section'] den Inhalt von $_SERVER['PATH_INFO'] auswertet. Siehe auch http://www.php.net/manual/en/reserve...les.server.php, speziell den Abschnitt zum PATH_INFO-Feld.

    Möchtest du hingegen externe URIs wie z.B. http://example.com/support zu http://example.com/index.php?section=support umschreiben, wäre mod_rewrite erforderlich. In diesem Fall könnte ein passender Regelsatz etwa
    Code:
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^\w+$ index.php?section=$0
    sein.

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    ob mein server diese unterstützung hat weiß ich nicht kann das dort auch nirgends finden hab mir die seite mal angeschaut aber nichtmal 10% davon verstanden ich weiß nur das wenn ich meine daten auf dem ftp habe und die url angebe das oben meine kompllter pfad drin steht.

    zu deinem geschrieben code:

    ich weiß nicht ob ich mich falsch ausgedrückt oder du mich vlt nur falsch verstanden hast dein weg ist richtig nur leider genau falsch rum

    du hast mir den code gegeben um uri's von http://example.com/support zu http://example.com/index.php?section=support machen .

    doch ich bräuchte das genau andersrum

    ich hoffe du kannst mir das vlt ein bissl umschreiben das die funzt

    Danke schonmal

  4. #4
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Zitat Zitat von Freakdead85 Beitrag anzeigen
    doch ich bräuchte das genau andersrum
    Kaum - möglicherweise hast du missverstanden, was mod_rewrite genau leistet. mod_rewrite (und URI-Rewriting-Module anderer Webserver ebenso) schreibt die angeforderten (externen) URI server-intern gemäss einem festgelegten Regelsatz um. Der von mir genannte Regelsatz würde etwa angeforderte URIs der Form http://example.com/support server-intern zu http://example.com/index.php?section=support umschreiben. Dadurch wird ein externer Aufruf von http://example.com/support äquivalent zu http://example.com/index.php?section=support - was wohl genau das ist, was du erreichen möchtest, denn dadurch kannst du extern URIs der Form http://example.com/support nutzen. Dies kannst du leicht testen, indem du z.B. http://example.com/support in deinem Browser aufrufst.

    Beachte auch, dass ausschliesslich aufgerufene URIs vor ihrer Weiterverarbeitung umschrieben werden. Insbesondere hat der Einsatz von mod_rewrite keinerlei Auswirkung auf die in ausgelieferten Dokumenten enthaltene URIs. Du bist selbst dafür verantwortlich, in deinen Webseiten das neue URI-Schema zu nutzen.

  5. #5
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    Hallo Kugelfisch

    Jetzt hab ic es verstanden hab es jett auch mal getestet zwa nur local aber wasja local geht muss ja auch aufm server dann funzen

    und ich hab es definitiv miss verstanden da sieht man es mal immer wieder man lernt einfach nicht aus

    Ich danke dir vielmals und wünsche noch nen schönen tag

  6. #6
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    hallo allerseits

    ich muss mich doch wohl oder übel nochmal melden denn ich brauch mal euren rat ich habe dank kugelfisch eine htaccess zusammen gestellt die auch bei mir lokal funktioniert.

    Code:
    # REWRITE SETTINGS
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^\w+$ index.php?page=$0&%{QUERY_STRING}
    mein problem ist das sie auf einem realen server nicht funktioniert mir is klar das auf dem server dann auch die mod_rewrite auf On oder 1 stehen muss was es auch tut und trotzdem bekomm ich nur die fehlermeldung request url

    hier mal zum selber anschauen:

    www.megacluster.my-dislike.com

    wenn man jetzt aber einen direkten pfad:

    http://www.megacluster.my-dislike.co...php?page=about

    dann funzt es vlt weiß ja einer rat.

    weiß jetzt nicht ob das relevent ist es handelt sich um einen russischen server bei timeweb

    Danke schonmal

  7. #7
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Die Zeile
    RewriteRule ^\w+$ index.php?page=$0&%{QUERY_STRING}
    in deinem Regelsatz ist suboptimal. Wenn du den Query-String erhalten möchtest, nutze das [QSA]-Flag:
    Code:
    RewriteRule ^\w+$ index.php?page=$0 [QSA]
    Siehe auch http://httpd.apache.org/docs/current....html#flag_qsa.

    Dies wird jedoch keinen Einfluss auf die Funktionalität haben. Zu deinem konkreten Problem:
    Überprüfe zunächst einmal, ob die htaccess-Datei auch tatsächlich verarbeitet wird, etwa durch Hinzufügen einer bekanntermassen nicht existenten Direktive (was, sofern die Datei verarbeitet wird, zu einem 500 Internal Server Error führen wird). Wird die Datei nicht verarbeitet, überprüfe, ob ggf. die Verarbeitung von per-Directory-Konfigurationsdateien per AllowOverride-Direktive verboten wurde.
    Wenn die Datei korrekt verarbeitet und dennoch keine Umschreibung vorgenommen wird, aktiviere testweise einmal das Rewrite-Log auf der höchsten Stufe (siehe http://httpd.apache.org/docs/current...e.html#logging) und überprüfe, weshalb deine Regeln nicht greifen.

  8. #8
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    danke werde das gleich mal testen

    muss ich um den rewrite_log auf höchster stufe root zugriff haben ?
    denn ich habe keinen

  9. #9
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Zitat Zitat von Freakdead85 Beitrag anzeigen
    muss ich um den rewrite_log auf höchster stufe root zugriff haben ?
    Nicht unbedingt, aber zumindest Zugriff auf die globale Apache-Konfiguration oder die VirtualHost-Konfiguration deiner Website. Wenn die Konfigurationsdateien nur für root schreibbar sind, benötigst du root-Zugriff. Bei normalem Webspace hast du üblicherweise keinen Zugriff auf diese Konfigurationsdateien.

  10. #10
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    ok danke

    dann hab ich natürlich ein problem denn ich habe keinen root zugriff und hab auch in der oberfläsche keine apache einstellungen oder sonstiges

    dann müsste ich mich an den support von dennen wenden jetzt müsste ich nur wissen welche einstellungen ich dort alle angeben muss damit das auch zu 100% funktioniert wäre nett wenn du mir eine liste erstellen könntest die ich denn mitteilen könnte um alles gangbar zu machen

    Mfg

  11. #11
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Ohne die Konfiguration zu kennen, lässt sich auch nicht präzise sagen, welche Einstellungen verändert werden müssen, damit deine .htaccess-Datei als per-Directory-Konfiguration verarbeitet wird und die RewriteRules greifen. Hast du inzwischen einmal getestet, ob die .htaccess-Datei überhaupt vom Webserver verarbeitet wird? Wenn ja, greift eine testweise eingefügte triviale Regel?

  12. #12
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    Zitat Zitat von Kugelfisch23 Beitrag anzeigen
    Hast du inzwischen einmal getestet, ob die .htaccess-Datei überhaupt vom Webserver verarbeitet wird?
    ja habe es getestet und bekomme ein error also die htaccess greift auf dem server bekomme immer ein error.

    jetzt wüßte ich gerne wie ich weiter vorgehen könnte.

    danke

  13. #13
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Überprüfe, ob eine stark vereinfachte htaccess-Datei mit einem aus einer einzigen Regel bestehenden Rewrite-Regelsatz greift. Zum Beispiel müsste
    Code:
    RewriteEngine On
    RewriteRule foo /test.php
    alle Requests, deren URI-Pfade die Zeichenkette foo enthalten, auf http://www.megacluster.my-dislike.com/test.php umschreiben (hinterlege dort eine Datei mit einem eindeutigen Inhalt).

  14. #14
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    da bekomm ich wieder ein error
    aber mal so am rande ich weiß nicht ob das wichtig ist
    ich benutze auf einen page_switcher:

    PHP-Code:
    <?
      error_reporting
    (0);

    // Page Array
    $pages = array
    (
      
    'about',
      
    'activate',
      
    'admin',
      
    'agb',
      
    'change',
      
    'contact',
      
    'customer',
      
    'download',
      
    'index',
      
    'intern',
      
    'login',
      
    'logout',
      
    'news',
      
    'password',
      
    'premium',
      
    'register',
      
    'reset',
      
    'search',
      
    'upload'
    );

    // Check if the site exists
    if( isset($_GET['page']) && !empty($_GET['page']) )
    {
      if( 
    in_array($_GET['page'], $pages) )
        include(
    'pages/' $_GET['page'] . '.php');
      else
        include(
    'pages/' 'index.php');
    } else {
        include(
    'pages/' 'index.php');
    }
    der mir den pfad so ausgibt das ich am ende .php machen muss

    danke

  15. #15
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    keiner ne lösung ?

  16. #16
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Wenn auch der von mir gepostete, aus bloss einer einzigen Regel bestehende Regelsatz keine Wirkung zeigt (also z.B. http://www.megacluster.my-dislike.com/test.php unter http://www.megacluster.my-dislike.com/foo verfügbar macht), funktioniert auf deinem Webserver offenbar mod_rewrite nicht korrekt. Dann kann dir lediglich der Support deines Hosters helfen.

    Allerdings kann ich das aktuell nicht beobachten, es tritt ein Umleitungsfehler (d.h. eine unendliche Umleitungsscheife) auf. Hast du die Konfiguration inzwischen wieder verändert? Sind (anders als empfohlen) noch weitere Regeln gleichzeitig aktiv?

  17. #17
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    ja hatte ich wegen einer https weiterleitung was auch nicht ganz will
    aber hab das erstmal wieder rückgängig gemacht so das du es dir nochmal ansehen kannst.
    hab in der test.php einfach mal hallo welt geschrieben und beides sowohl test.php also auch /foo ist erreichbar

    solangsam weiß ich echt nicht mehr weiter und ich hab meiner verzeichnisse alle in dem ordner pages die über einen page_switcher wie oben schon gepostet in die index includiert werden.

    Danke schonmal hoffe du weiß weiter

  18. #18
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Zitat Zitat von Freakdead85 Beitrag anzeigen
    hab in der test.php einfach mal hallo welt geschrieben und beides sowohl test.php also auch /foo ist erreichbar
    Dies widerspricht zwar deinem ersten Test, doch ich kann das Verhalten bestätigen und es zeigt auf, dass mod_rewrite offenbar korrekt funktioniert.

    Da dein vollständiger Regelsatz nicht funktioniert, musst du diesen nun schrittweise reduzieren und das Problem einschränken. Dass du kein RewriteLog verwenden kannst, erleichtert die Fehlersuche natürlich nicht. Hat ein Regelsatz, der ausschliesslich aus
    Code:
    RewriteEngine On
    RewriteRule ^\w+$ /index.php?page=$0 [QSA]
    besteht eine Wirkung? Wenn nicht, könntest du testweise
    Code:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^.*$ index.php?page=$0 [QSA]
    nutzen und überprüfen, welche page-Parameter übergeben werden (testweise im index.php-Skript ausgeben lassen). Möglicherweise ist die RewriteBase nicht korrekt konfiguriert.

  19. #19
    Mitglied

    (Threadstarter)


    Registriert seit
    May 2008
    Beiträge
    122

    Standard Re: mod_rewrite htaccess

    Zitat Zitat von Kugelfisch23 Beitrag anzeigen
    Wenn nicht, könntest du testweise
    Code:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^.*$ index.php?page=$0 [QSA]
    nutzen und überprüfen, welche page-Parameter übergeben werden (testweise im index.php-Skript ausgeben lassen). Möglicherweise ist die RewriteBase nicht korrekt konfiguriert.
    dieser regelsetz hier greift und funzt ich muss jetzt auch net ganz verstehen warum aber bin schon mal froh das das endlich funzt dank deiner hilfe jetzt muss ich nur noch das problem mit dem https umsetzen dann is das perfekt

    danke dir vielmals für deine hilfe

    PS: für was war bei mir in der htaccess eigentlich das rewritebase ?

  20. #20
    Nerd

    Board:Crew

    Avatar von Kugelfisch23
    Registriert seit
    Oct 2007
    Ort
    Im Ozean
    Beiträge
    16.810

    Standard Re: mod_rewrite htaccess

    Zitat Zitat von Freakdead85 Beitrag anzeigen
    dieser regelsetz hier greift und funzt ich muss jetzt auch net ganz verstehen warum
    Weshalb für einen URI wie http://www.megacluster.my-dislike.com/about diese Regel greift, nicht aber(?)
    Code:
    RewriteRule ^\w+$ index.php?page=$0 [QSA]
    erschliesst sich mir ebenfalls nicht. Schliesslich müssten beide auf den Pfad-Bestandteil about passen. Wie lautet der page-Parameter, der an das index.php-Skript übergeben wird? `about`? Greift eine Regel wie
    Code:
    RewriteRule ^[A-Za-z]+$ index.php?page=$0 [QSA]
    ebenfalls nicht?

    Meine Test-Regel (mit .* als regulären Ausdruck für den URI-Pfad) ist nur bedingt für den Produktiveinsatz geeignet, da sie URIs wie http://www.megacluster.my-dislike.com/foo/bar ebenfalls umschreibt, sofern sie nicht auf eine physisch existente Datei zeigen. Das ist insbesondere dann problematisch, wenn du auch andere Umschreibungen vornehmen lassen möchtest.
    Auch ist unschön, dass dein Skript (wie aktuell der Fall) im Falle eines ungültigen page-Parameters die Startseite anstelle einer Fehlerseite ausliefert, da die Startseite dann unter diversen URIs (ggf. sogar mit unterschiedlichen Basis-URIs) zugänglich ist. Im Falle eines ungültigen (aber nicht leeren) page-Parameters sollte dein Skript eine passende Fehlermeldung mit Statuscode 404 (Not Found) ausliefern.

    Zitat Zitat von Freakdead85 Beitrag anzeigen
    PS: für was war bei mir in der htaccess eigentlich das rewritebase ?
    Um das Pfad-Präfix für die neuen URIs festzulegen, siehe http://httpd.apache.org/docs/2.2/mod...ml#rewritebase. / scheint in deinem Fall durchaus passend zu sein, ist jedoch bei deiner Webserver-Konfiguration nicht erforderlich.

  21.  
     
     
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •