1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

mod_rewrite hilfe

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von kstyle, 22.02.07.

  1. kstyle

    kstyle Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    21.01.06
    Beiträge:
    246
    Hi leute,

    wir versuchen zur zeit bei ner community seite die links mit mod_rewrite zu verändern. in der config vom apache isses drin, also die mod is geladen. ich hab gelesen das man das in eine .htaccess datei schreiben muss...

    wir versuchen folgendes:
    eine "index.php?s=news" (zb.) soll mit "/home/" ersetzt werden..
    dann haben wir in der .htaccsess datei das stehen:
    aber dies ist falsch.. weiß einer von Euch wie es richtig geht?? wir haben nehmlich bei keine ahnung von, aber bräuchten es weil es für eine Community seite einfach gut aussieht wenn man dann zb. "/user/123456/" hat..
    danke schonmal!

    ps: das selbe wollen wir zb. für index.php?s=user&id=123456 ... wie geht das?

    Gruß,
    sidney
     
  2. dirkgomez

    dirkgomez Gast

    Hi Sidney,

    die Datei heißt .htaccess.

    Und Du willst das Pferd verkehrt herum aufzäumen, mod_rewrite ist nicht zum Umschreiben von Links während des "Ausgabe-Prozesses", sondern spielt eine Rolle bei der "Request-Annahme". (sehr verknappt in Englisch von http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html: This module uses a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly.)

    Du gibst halt einfach /user/123456/ aus, das ist doch was Du willst oder?

    -- Dirk
     
  3. kstyle

    kstyle Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    21.01.06
    Beiträge:
    246
    hi,
    danke schonmal für die Antwort!

    ja ich möchte das in der Adresszeile dann zb. /user/123456/ steht wie du sagtest. Nur wir bekommen den Code nicht hin :S

    als bsp:
    index.php?s=news
    -> in der Adresszeile soll " /news/ " stehen..

    index.php?s=user&id=123456
    -> in der Adresszeile soll " /user/123456 " stehen.. also das man index.php?s=user&id=123456 auch mit /user/123456/ aufrufen kann.. sowas ist möglich nur wir bekommen es halt nicht hin.. weißt du vielleicht wie der Code lauten muss??

    Währe sehr nett :)

    Gruß,
    sidney
     
  4. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    So in der Art, würde ich sagen:

    RewriteRule ^([a-zA-Z0-9@-]+)\/([0-9]+)\/$ index.php?s=$1&id=$2
     
  5. kstyle

    kstyle Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    21.01.06
    Beiträge:
    246
    Hi,

    ich hab jetzt mal geschaut aber irgendwie is das ganze bisschen kompliziert..

    also wir geben ja Variablen aus wie zb.
    index.php?s=news, index.php?s=user&id=123456

    Muss man das dann so machen?
    RewriteRule ^([a-zA-Z0-9@-]+)\/([0-9]+)\/$ index.php?s=$1&id=$2
    RewriteRule ^([a-zA-Z0-9@-]+)\$ index.php?s=$1
    RewriteRule ^([a-zA-Z0-9@-]+)\([a-zA-Z0-9@-]+)\/$ index.php?s=$1&cat=$2

    also alles einzelnd Definieren?
    Währe dankbar um jede Hilfe!

    Gruß
    sidney
     
  6. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Das wird so nicht funktionieren. Vielmehr musst Du Dir eine Parameterfolge überlegen, die immer eingehalten wird; so erhält jeder Parameter seinen eigenen Platz in der Abfolge.

    Wichtig ist daher die Überlegung: Was möchte ich tun, und wie möchte ich es tun? Möchte ich einen Artikel aus einer Artikelsammlung anzeigen, besteht meine Aktion aus drei Informationen:
    1. Anzeigen
    2. Artikel aus einer bestimmten Sammlung
    3. Artikel-ID

    Du siehst schon, dass sich theoretisch die Information zwei einsparen ließe, wenn klar wäre, dass es sich bei der Information #3 immer um eine Artikel-ID und nicht vielleicht um etwas ganz anderes mit einer Ordnungszahl handelte. Das ist aber vermutlich nicht der Fall, also würdest Du auf eine solche Parameter-Abfolge kommen:

    index.php?aktion=anzeigen&was=neuigkeit&welche=42
    ==> Jetzt müsste Deinem Controller gesagt werden können, was aus der Datenbank zu zupfen ist. In diesem Fall die Neuigkeit Nr. 42.

    oder

    index.php?aktion=anzeigen&was=neugkeit&welche=0&ab=10&limit=20
    ==> Dein Controller könnte durch die nicht definierte Angabe, welchen Artikel er selektieren soll, wissen, dass er keinen bestimmten sonder eine ganze Menge von Artikeln auslesen und anzeigen soll, und zwar ab dem Zehnten und dann nicht mehr als 20 Stück.

    Lassen sich die Parameter als immer so beschreiben, müsstest Du Dich für Deine Web-Applikation nur darauf einlassen, dass Links bei Dir immer dieselbe Parameterabfolge haben und schon kannst Du das mit einem regulären Ausdruck formulieren (oder, wie dachtest Du, funktioniert amazon?).
     
  7. kstyle

    kstyle Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    21.01.06
    Beiträge:
    246
    Ah, erstma Danke :D (geiler zufall mit der PM ;D)
    also Ich hab das jetzt so verstanden das die varbiablen immer gleich bleiben müssen..

    also: index.php?s=xxxx&id=xxxx&irgendwas=xxxx
    es muss also immer das einhalten.. ist das richtig? so hab ich das jetzt verstanden :)

    Gruß
    sidney
     
  8. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Ja, genau. :D
     
  9. kstyle

    kstyle Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    21.01.06
    Beiträge:
    246
    aaaah okay.. VIELEN VIELEN DANK! :D

    Gruß
    sidney
     

Diese Seite empfehlen