Seite 1 von 1
Rewrite_Rule Unterstützung...
Verfasst: 26.02.2009, 10:55
von JohnBi
Hallo nochmals,
ich hab immer meine Projekte statisch aufgebaut und immer sehr goßen Erfolg mit meinen Webseiten erreicht - nun aber mein neues Projekt soll endlich voll dynamisch sein mit voll den Funktionen die einfach statisch nicht realisierbar sind. Nun lange Rede kurzer Sinn...
ich habe nur eine Datei - die index.php
und die Kategorien werden alle mit cat=1 bis cat=n angesprochen
und die einzelnen Unterseiten mit id=1 bis id=n
wie kann ich nun die urls so umschreiben das ich
aus index.php?id=1
https://www.domain.de/blabla1.html
und aus index.php?cat=1
https://www.domain.de/blabla2/
ich hoffe ich hab mich verständlich ausgedrückt ... ich hab mich schon durch viele Erklärungen durchgekämpft aber irgendwie steige ich da nicht wirklich durch und rewrite_rules sind für mich böhmische Dörfer ...
Danke
John
Verfasst:
von
Hochwertiger Linkaufbau bei ABAKUS:
- Google-konformer Linkaufbau
- nachhaltiges Ranking
- Linkbuilding Angebote zu fairen Preisen
- internationale Backlinks
Wir bieten
Beratung und
Umsetzung.
Jetzt anfragen:
0511 / 300325-0
Re: Rewrite_Rule Unterstützung...
Verfasst: 26.02.2009, 11:54
von Mork vom Ork
Falls du möchtest, dass alles, was mit .html am Ende daherkommt, in index.php?id=n umgewandelt wird, und alles, was als Verzeichnis angesprochen wird, in index.php?cat=n, dann geht das folgendermaßen:
RewriteRule
(\d+)\.html
$ index.php?id=
$1
RewriteRule
(\d+)/
$ index.php?cat=
$1
Beide Muster greifen sich ausgehend vom
Ende ($) eine oder mehrere (+) Ziffern (\d), die jeweils vor dem Text .html bzw. einem Schrägstrich stehen. Das Kopieren wird mit den runden Klammern angezeigt, der kopiere Teil wird an Stelle des
$1 in die Ziel-URL eingefügt.
Beachte bitte, dass diese zwei Regeln
jeden Pfad abgreifen, egal wie tief er bei dir versteckt ist. Sowohl /bla.html und /bla/ passen auf die Muster, wie auch /bla/fasel/dings/bums.html oder /bla/dings/fasel/platsch/.
mod_rewrite bzw. der Apache allgemein verwendet übrigens für solche Mustererkennung die
PCRE-Bibliothek. Diese Bibliothek wird auch von vielen anderen Projekten eingesetzt, unter anderem findet sie sich in PHP wieder - und dort ist auch eine recht vernünftige
Anleitung zur PCRE-Syntax verfügbar.
Verfasst: 26.02.2009, 12:39
von JohnBi
macht der nicht - ich habs probiert umzudrehen aber tut es auch nicht .
weil ich möchte index.php?id=1 -> in 1.html von mir aus
und index.php?cat=1 -> in 1/
und was mache ich bei ner 2. Variable für die Seitenanzahl?
von index.php?cat=1$&start=2 -> ?
und wie machen das die Profis das die von
index.php?id=1 umwandeln in voll den text.html ?
oder
index.php?cat=1 umwandeln in text/
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 26.02.2009, 16:35
von Mork vom Ork
JohnBi hat geschrieben:macht der nicht - ich habs probiert umzudrehen aber tut es auch nicht .
Die beiden Zeilen funktionieren einwandfrei. Hast du möglicherweise vergessen, sie vorher mit
RewriteEngine on zu aktivieren?
RewriteEngine on
RewriteRule (\d+)\.html$ index.php?id=$1
RewriteRule (\d+)/$ index.php?cat=$1
Das Ganze schreibst du eine Datei namens .htaccess, die du im Wurzelverzeichnis deines Webverzeichnisses ablegst.
weil ich möchte index.php?id=1 -> in 1.html von mir aus und index.php?cat=1 -> in 1/
Solltest du allerdings tatsächlich wollen, dass der Besucher index.php?id=1 eintippt und der Server daraus die Datei /1.html macht (so interpretiere ich jedenfalls „index.php?id=1 -> in 1.html“), hätte ich dich falsch verstanden. Du wärest der Erste, der index.php-Kram nicht verstecken, sondern bei statischen URLs eine index.php vorgaukeln möchte.
und wie machen das die Profis das die von
index.php?id=1 umwandeln in voll den text.html ?
Dazu benötigt man entweder das Recht, mod_rewrite mit einer Datenbank zu nutzen, oder man überlässt die Arbeit gänzlich dem Skript.
Verfasst: 26.02.2009, 17:04
von JohnBi
Danke Mork für deine Geduld mit mir - ich bin echt schwer von Begriff glaube ich - kenn mich eben mit dem Kram nicht so aus - hab immer statische Webseiten gemacht ...
ich lass die URLs jetzt so
https://www.domain.de/index.php?id=1
immerhin sind die gespidert und im Index
aber das letztere interessiert mich doch sehr ...
wo kann ich da mehr zu lesen - wie ich mod_rewrite mit Datenbank nutzen kann?
und was meinste überlässt die Arbeit gänzlich den Script
- apropros die Engine war on - weil ich nämlich von ohne www auf mit www weiterleite und das funktioniert super
Danke nochmals für deine Geduld
John
Verfasst: 26.02.2009, 17:20
von net(t)worker
wenn du die urls per mod_rewrite umschreiben möchtest, musst du die hauptarbeit im script selber machen... dort musst du es so anpassen das auf der website dann 1.html anstatt index.php?id=1 erscheint.... mod_rewrite hilft dann später nur dabei aus dem 1.html wieder id=1 fürs script zu machen, da das script ja die id braucht.
Verfasst: 27.02.2009, 10:31
von Mork vom Ork
JohnBi hat geschrieben:wo kann ich da mehr zu lesen - wie ich mod_rewrite mit Datenbank nutzen kann?
https://httpsd.apache.org/docs/2.2/mod/ ... rewritemap
Das wird für dich aber vermutlich uninteressant sein, weil du dazu Zugriff auf die eigentliche Serverkonfiguration brauchst, nicht nur die .htaccess.
und was meinste überlässt die Arbeit gänzlich den Script
Jeder Aufruf wird ohne weitere Änderung direkt an ein Skript übergeben (siehe
hier). Das Skript muss dann die angefragte URL selbst zerlegen. Im Beispiel oben zerlegt mod_rewrite die URLs und übergibt die relevanten Teile als URL-Parameter id und cat an das Skript.
Verfasst: 27.02.2009, 10:52
von JohnBi
vielen dank euch beiden, ich werde mich wohl da durcharbeiten müssen und danke für die Links - da weiss ich was ich das Wochenende mache.