kostenloser Webspace werbefrei: lima-city


ModRewrite und CMS

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    strange

    Kostenloser Webspace von strange

    strange hat kostenlosen Webspace.

    Moin,

    aktuell code ich an einem neuen Projekt rum und will dort ModRewrite mit einfließen lassen. Mein Problem, ich verstehe das alles irgendwie nicht wirklich. Die Lösung dazu hoffe ich durch Euch zu bekommen.

    Mit $_GET['section'] (www.url.de/index.php?section=blabla) werden die Inhalte aufgerufen und ggf. durch andere $_GET Variablen weiter verfeiner (www.url.de/index.php?section=download&item=123). Nun will ich via ModRewrite das ganze ein wenig Suchmaschienen freundlicher machen, habe aber keine Idee wie ich das angehen soll. Ich bekomme es mal grade hin, via .htaccess Datei, die Rechte richtig zu setzen und so weiter. Mit ModRewrite hat das aber alles nicht so wirklich was zu tun.

    Nun meine Frage(n): Wie bekomme ich es hin, das aus "www.url.de/index.php?section=downloads" "www.url.de/downloads" wird ohne das versucht wir ein entsprechendes Verzeichniss zu finden (was ganz nebenbei auch existiert, aber für einen Besucher nich zugänglich ist)?

    Dazu kommt noch, das auch $_GET['item'] umbenannt werden müsste und zwar in den Namen des entsprechenden Items (liegt in der Datenbank). Sprich "www.url.de/index.php?section&item=123" zu "www.url.de/downloads/tolles-zipfile"?

    Danke schon mal für Eure Hilfe und ich hoffe dass das Ganze überhaupt so funktionieren kann wie ich mir dass gedacht habe ;)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. strange schrieb:
    Nun meine Frage(n): Wie bekomme ich es hin, das aus "www.url.de/index.php?section=downloads" "www.url.de/downloads" wird ohne das versucht wir ein entsprechendes Verzeichniss zu finden (was ganz nebenbei auch existiert, aber für einen Besucher nich zugänglich ist)?

    Wenn es ein Verzeichnis gleichen Namens gibt, ob zugänglich oder nicht ist egal, wird es unnötig kompliziert.
    Von daher würde ich die Syntax der freundlichen URLs dann eventuell anders gestalten.

    Zwecks Unterscheidung ließe sich in die Suma-URLS ein zusätzliches Merkmal einbauen.
    domain.tld/downloads = Link zum Verzeichnis downloads
    domain.tld/Merkmal/downloads oder domain.tld/Merkmal-downloads = Link zum Skript mit Parameter Downloads.

    Was brauchen wir?

    1. ein Skript, das Suma-freundliche URLS (z.B.: Domain.tld/Merkmal/wert1) ausgibt. Dabei ist es einfach, das Skript so zu gestalten, daß es eine URL der Form
    echo "<a href='http://domain.tld/Merkmal/" . $wert1-variable . "'>Linktext</a>";

    statt
    echo "<a href='http://domain.tld/index.php?param=" . $wert1-variable . "'>Linktext</a>";

    generiert

    2. eine .htaccess, die die Url wieder in eine, für php verständlicher Form umbaut ( -> Domain.tld/index.php?param1=wert1)
    3. eine Index.php, oder ein anderes php-Skript, das diese URL verarbeitet.. ;)

    obiges Beispiel würde dann mindestens eine .htaccess wie folgt voraussetzen:

    RewriteEngine On
    RewriteRule ^Merkmal/([^/_]+)$   /index.php?param1=$1   [L,NC]


    Je nach Konfiguration des Apache kann die Syntax des Rewriting in der .htaccess (Stichwort: RewriteCond) auch anders aussehen.
  4. Autor dieses Themas

    strange

    Kostenloser Webspace von strange

    strange hat kostenlosen Webspace.

    Super, vielen Dank, das bringt mich ne ganze Ecke weiter. Nur noch ne Frage... wie gehe ich vor wenn ich unterschiedliche Variablen habe, bzw. mehrere in einer URL: http://domain.tld/index.php?var1=foo&var2=bar
  5. Auch kein großes Ding.

    Sieht dann etwa so aus:

    alte Version

    echo "<a href='http://domain.tld/index.php?param1=" . $wert1-variable ."&amp;param2=" . $wert2-variable . "'>Linktext</a>";


    neue Version

    echo "<a href='http://domain.tld/" . $wert1-variable . "/" . $wert2-variable . ".html'>Linktext</a>";


    .htaccess:

    RewriteEngine On
    RewriteRule ^([^/_]+)/([^/_]+)\.html$   /index.php?param1=$1&param2=$2   [L,NC]


    Das System läßt sich beliebig erweitern, kostet aber Serverleistung, weil das Regelwerk bei jedem Seitenaufruf geprüft wird.
  6. Autor dieses Themas

    strange

    Kostenloser Webspace von strange

    strange hat kostenlosen Webspace.

    Also wenn ich das richtig verstanden habe, müsste meine .htaccess wie folgt aussehen:
    RewriteEngine On
    RewriteRule ^Merkmal/([^/_]+)$   /index.php?param1=$1   [L,NC]
    RewriteRule ^Merkmal/([^/_]+)/([^/_]+)\.html$   /index.php?param1=$1&param2=$2   [L,NC]


    Wie die Links dann Formatiert werden ist klar.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!