RewriteRule für zwei Variablen?
Phil
- webserver
0 Vinzenz Mai0 Phil0 ChrisB0 Phil0 dedlfix
0 Der Martin
0 Vinzenz Mai
Hallo zusammen
Ich verwende schon seit längerem folgende RewriteRule:
RewriteRule ^([a-z]+)$ index.php?pid=$1
Folgenden Link möchte ich neu gerne umschreiben:
http://.....com/news/1
Daraus soll für den Server werden: index.php?pid=news&page=1
Danke für die Hilfe.
Grüsse, Phil
Hallo,
Folgenden Link möchte ich neu gerne umschreiben:
http://.....com/news/1
Daraus soll für den Server werden: index.php?pid=news&page=1
was hast Du versucht?
Woran bist Du hängen geblieben?
Wie können wir Dir helfen?
Freundliche Grüße
Vinzenz
Danke für die Antwort.
Folgende Lösung habe ich schon:
RewriteRule ^([a-z]+)$ index.php?pid=$1
RewriteRule ^([0-9]+)$ index.php?pid=news&page=$1
Die kombinierte Variante wäre allerdings schöner. Allerdings bin ich mir nich sicher, wie sich dies umsetzen lässt.
Sämtliche Versuche beide Variablen miteinander auszulesen scheitern in unbrauchbaren Ergebnissen.
Hi,
Folgende Lösung habe ich schon:
RewriteRule ^([a-z]+)$ index.php?pid=$1
RewriteRule ^([0-9]+)$ index.php?pid=news&page=$1Die kombinierte Variante wäre allerdings schöner. Allerdings bin ich mir nich sicher, wie sich dies umsetzen lässt.
Du willst erst ein paar Buchstaben, dann ein paar Ziffern - für beides hast du schon Suchmuster.
Und dann willst du auch noch einen Slash dazwischen - das „Suchmuster“ für den, wenn er nicht optional sein und auch nicht in Form einer Backreference erfasst werden soll, ist reichlich trivial: /
Sämtliche Versuche beide Variablen miteinander auszulesen scheitern in unbrauchbaren Ergebnissen.
Versuche zeigen, nicht ominös davon faseln.
Nur dann können wir dir sagen, wo dein Fehler liegt.
MfG ChrisB
Hallo zusammen
Danke für die Hilfe.
Ich hoffe ihr seid ein (wenigstens ein bisschen) stolz auf mich :-)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index.php
RewriteRule ^([a-z]+)$ /index.php?pid=$1
RewriteRule ^([a-z]+)/([0-9])$ /index.php?pid=$1&bid=$2 [L]
Das letzte kleine Problem das ich habe. Die zweite RewriteRule beinträchtigt auch die realtiven Links welche sicher innerhalb von index.php befinden. Leider nützt auch das nichts...
RewriteCond %{REQUEST_URI} !..+$
Hi!
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index.php
RewriteRule ^([a-z]+)$ /index.php?pid=$1
Die !-f-Direktive sorgt schon dafür, dass index.php ausgenommen wird, weil die als Datei vorliegt. Die dritte RewriteCond ist also überflüssig.
RewriteRule ^([a-z]+)/([0-9])$ /index.php?pid=$1&bid=$2 [L]
Diese RewriteRule hat keine RewriteConds, die existierende Dateien/Verzeichnisse ausnehmen würden. RewriteConds beziehen sich nur auf _eine_ nachfolgende RewriteRule.
Das letzte kleine Problem das ich habe. Die zweite RewriteRule beinträchtigt auch die realtiven Links welche sicher innerhalb von index.php befinden. Leider nützt auch das nichts...
"Beeinträchtigt" ist so aussagekräftig wie "funzt nicht". Wenn die hinzugefügten RewriteConds dein Problem nicht lösen, beobachte und beschreib es genauer.
Lo!
Herzlichen Dank für eure tolle Hilfe!
ich dachte RewriteCond %{REQUEST_URI} !..+$ hat den Sinn, dass keine URLs umgeschrieben werden die einen Punkt darin enthalten.
Irgendwie scheinen trotz den RewriteCond die relativen Links in meiner Datei umgewandelt zu werden. Folgndes hat mein Problem gelöst.
<base href="http://*meine url*.com/">
Auch der Tipp das die RewriteCond nur für die nächste Rule gilt, klappt leider nicht.
Grüsse, Phil
Hi,
Irgendwie scheinen trotz den RewriteCond die relativen Links in meiner Datei umgewandelt zu werden.
Klingt eher so, als hättest du nicht in Betracht gezogen, wessen Aufgabe es ist, relative Pfade zu absoluten Adressen zu vervollständigen, und auf welcher Basis.
MfG ChrisB
Hallo,
RewriteRule ^([a-z]+)/([0-9])$ /index.php?pid=$1&bid=$2 [L]
ist es Absicht, dass du nur genau eine Ziffer akzeptieren möchtest, und nicht mehrere?
Das letzte kleine Problem das ich habe. Die zweite RewriteRule beinträchtigt auch die realtiven Links welche sicher innerhalb von index.php befinden. Leider nützt auch das nichts...
Das verstehe ich leider nicht. Etwas konkreter bitte.
RewriteCond %{REQUEST_URI} !..+$
Was ist das? Oder besser: Was *sollte* es sein?
Ciao,
Martin
Hallo,
Folgende Lösung habe ich schon:
RewriteRule ^([a-z]+)$ index.php?pid=$1
RewriteRule ^([0-9]+)$ index.php?pid=news&page=$1
Sämtliche Versuche beide Variablen miteinander auszulesen scheitern in unbrauchbaren Ergebnissen.
ist Dir klar, dass der geklammerte Ausdruck dafür sorgt, dass etwas gemerkt wird. Willst du zwei unterschiedliche Bereiche merken, so musst Du zweimal etwas einklammern. Welches Zeichen trennt diese beiden unterschiedlichen Dinge, die Du auslesen willst?
Freundliche Grüße
Vinzenz