| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

20-07-2009, 21:47
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
mod_rewrite - regex
Hi leute,
ich hab da mal 2 fragen zu mod_rewrite:
1. Stimmt es, dass ich nur 9 "atoms" bei diesen regex verwenden kann ?
2. wie kann ich erreichen, dass links wie :
filename?country=USA&state=California&city=San_Diego
automatisch nach : filename/USA/California/San_Diego umgeleitet werden
die URL filename/USA/California/San_Diego selbst funktioniert ja, aber ich hätte gern, dass die Links autoamtisch auch so umgeleitet werden,
kann mich da jemand auf den richtigen pfad bringen ?
Hier mal nen tutorial, dass ich für den start ganz nützlich fand:
Mod Rewrite Tutorial
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|

21-07-2009, 02:25
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von ways
1. Stimmt es, dass ich nur 9 "atoms" bei diesen regex verwenden kann ?
|
Du meinst Back References? Ja.
Btw: Du Plenkst.
Zitat:
2. wie kann ich erreichen, dass links wie :
filename?country=USA&state=California&city=San_Diego
automatisch nach : filename/USA/California/San_Diego umgeleitet werden
die URL filename/USA/California/San_Diego selbst funktioniert ja, aber ich hätte gern, dass die Links autoamtisch auch so umgeleitet werden
|
Wieso willst du irgendwas umleiten?
Gebe die Links im Dokument so aus, wie du sie haben willst.
Oder meinst du "alte" Verlinkungen von extern, die wirklich auf die neue Form umgeleitet werden sollen?
Das würde ich im Script machen, für mod_rewrite wäre mir das zu aufwendig.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

21-07-2009, 07:50
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
das mit dem plenken, hast du mir schon mal auf selfhtml gesagt oder?
und wegen der url.. ja, die externen und/oder die bookmarks der anwender.
das sollte ich im script machen? ist es noch zu früh, dass ich grad nicht weiß wie ich das umsetze ?
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|

21-07-2009, 08:43
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Du willst parametisierte Url's optisch in eine verzeichnisbasierte Darstellung umwandeln?
-> Nutze die Parameter, setze deinen Url zusammen und leite mit header() auf diesen Url weiter.
-> Wozu? Die Parameter sind bereits im Url und können ohne Probleme weiter verwendet werden. Sonst würde obiger Punkt nicht so einfach umzusetzen sein.
Den Sinn hinter deinem Vorhaben verstehe ich, neben wahsaga, auch nicht so ganz.
Oder ... Willst du eine verzeichnisbasiere Darstellung mittels mod_rewrite so umwandelt, dass du diese im Script als Parameter nutzen kannst?
-> Wenn ja ... Dann ist deine Fragestellung falsch.
|

21-07-2009, 11:55
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
Zitat:
Zitat von Abraxax
Du willst parametisierte Url's optisch in eine verzeichnisbasierte Darstellung umwandeln?
-> Nutze die Parameter, setze deinen Url zusammen und leite mit header() auf
|
Hi Abraxax,
genau das möchte ich gern !
ich hab natürlich nochmal drüber nachgedacht, eine Umleitung mittels Header reicht mir vollkommen aus.
In erster Linie gehts mir natürlich um suchmaschinenfreundliche URLs.
Wenn ich diese Anmelde, oder sie von suchspidern aufgenommen werden.
Dazu muss ich ja nur die links auf der Seite verzeichnisbasiert umstellen, was ja kein problem ist.. Das
PHP-Code:
output_add_rewrite_var()
kann ich dann aber nicht mehr einsetzen oder?
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|

21-07-2009, 12:32
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Zitat:
Zitat von ways
genau das möchte ich gern !
ich hab natürlich nochmal drüber nachgedacht, eine Umleitung mittels Header reicht mir vollkommen aus.
|
Ok. D.h. Wenn ein User einen paramterbasierten Url aufruft, soll dieser verzeichnisbasiert "werden".
-> header()
Zitat:
Zitat von ways
In erster Linie gehts mir natürlich um suchmaschinenfreundliche URLs.
Wenn ich diese Anmelde, oder sie von suchspidern aufgenommen werden.
|
Hierzu ist es aber nötig, dass der User (der Bot der Suchmaschine) bereits auf verzeichnisbasierte Urls geleitet wird.
Also musst du bereits alle Link verzeichnisbasiert darstellen und diese intern mittels mod_rewrite parametisieren, um diese verarbeiten zu können.
Zitat:
Zitat von ways
Dazu muss ich ja nur die links auf der Seite verzeichnisbasiert umstellen, was ja kein problem ist..
|
Korrekt.
Zitat:
Zitat von ways
Das
PHP-Code:
output_add_rewrite_var()
kann ich dann aber nicht mehr einsetzen oder?
|
Ich sehe keinen Grund warum es nicht klappen sollte.
OffTopic: PS. Danke für den Hinweis ...
|

21-07-2009, 13:33
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
Zitat:
Zitat von Abraxax
PHP-Code:
output_add_rewrite_var()
Ich sehe keinen Grund warum es nicht klappen sollte.
|
achso, in dem fall, würde dann meine Header-umleitung wieder eingreifen,
denn output_add_rewrite_var() erzeugt ja paramterbasierten Url
oder kann ich da was machen, dass es mir links gleich verzeichnisbasiert ausspuckt?
OffTopic: Kein Problem ...
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|

21-07-2009, 19:04
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Zitat:
Zitat von ways
oder kann ich da was machen, dass es mir links gleich verzeichnisbasiert ausspuckt?
|
Nutze eine andere Funktion oder schreibe eine von Hand. Oder erweitere den Url direkt im Code?
Du hast hier viele Möglichkeiten ....
|

21-07-2009, 20:51
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
alles klar, ich werd mir da was einfallen lassen !
hab ebend auch grad mal ein wenig getestet, wenn ich dieses verzeichnisbasierte navigieren verwende, dann funktioniert auch die darstellung meiner seite nicht mehr... warscheinlich weil ich relative pfadangaben verwende und die ja nicht mehr zum basispfad stimmen.. verwende ich komplette pfadangaben, dann werden bilder und css wieder geladen...
geht das auch anders ?
und dann noch eine frage zur übergabe der parameter bei dieser verzeichnisbasierten methode...
wenn ich also statt domain.tld/index.php?language=de&content=start, ein domain.tld/de/start verwende, muss ich mir ne funktion schreiben, die mir diese parameter zerteilt, damit ich meine links generieren kann oder gibts es da auch standard-wege ?
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|

21-07-2009, 21:11
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Zitat:
|
warscheinlich weil ich relative pfadangaben verwende
|
Schreibe doch einfach /path/to/image.png
Also immer absolut vom root-Knoten aus ohne Angabe eines Hostes.
Zitat:
|
verwende ich komplette pfadangaben, dann werden bilder und css wieder geladen
|
Das ist mir neu ...
Zitat:
|
muss ich mir ne funktion schreiben, die mir diese parameter zerteilt
|
Dafür nimmst du mod_rewrite!
|

21-07-2009, 21:33
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
Zitat:
Zitat von Abraxax
Schreibe doch einfach /path/to/image.png
Also immer absolut vom root-Knoten aus ohne Angabe eines Hostes.
|
okay.. mit ../images/bildname.jpg geht es auch..
wobei ich aber bei de/start gedacht hätte, dass es ein ../../images/bildname.jpg sein müßte !
Zitat:
Zitat von Abraxax
Das ist mir neu ...
|
war so...
Zitat:
Zitat von Abraxax
Dafür nimmst du mod_rewrite!
|
dann steh ich wohl noch mächtig aufn schlauch 
dazu find ich in meinem tutorial nich den passenden ansatz...
bisher nur, wie man die parameterübergabe, verzeichnisbasierend zum laufen bringt... aber den nötigen rest leider nicht.. hast du da vielleicht das passende stichwort für mich und google
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|

21-07-2009, 22:13
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Zitat:
okay.. mit ../images/bildname.jpg geht es auch..
wobei ich aber bei de/start gedacht hätte, dass es ein ../../images/bildname.jpg sein müßte !
|
Ich habe "immer absolut vom root-Knoten aus" gesagt. Wo kommen die Punkt-Paare in deinen Pathangaben her?
Interessant, wenn dem so ist. Aber jetzt wird dieses Verhalten - sollte es so sein - erst einmal ignoriert.
Zitat:
dann steh ich wohl noch mächtig aufn schlauch
dazu find ich in meinem tutorial nich den passenden ansatz...
|
Das mag evtl. daran liegen, dass du von mod_rewrite nicht die Bohne von Ahnung hast? ... Nein, lass es mich anders formulieren. Du weißt (nur) nicht, was mod_rewrite tatsächlich macht?
Lies dich mal auf modrewrite.de | mod_rewrite & .htaccess (Apache Server) ein.
|

21-07-2009, 23:15
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
1. also:
ich hab meine seite in www/site
bilder in www/site/images
css in www/site/css
in www/site liegt das file index.php
was ich normal mit index.php?language=de&content=start aufrufe
wenn ich nun localhost/site/de/start aufrufe, klappt das auch,
wenn ich aber die pfade der grafiken mit site/images/bild.jpg versehen, geht das nicht... und das is doch bis zum root-verzeichnis oder irre ich mich auch da??
läd er mir die images und css files nur mit "../"
ein site/images/bild.jpg geht nicht !?
uppss... ein /site/images/bild.jpg geht... fehlte also das / am anfang... ok
text hinfällig... aber so lernt man ja geweöhnlich dazu
2. alles klar, wird ignoriert !
3. also wenn du das so sagst, JA... nicht die bohne... hab mir nur die grundlagen für die htaccess bzw die formulierungen für den teil zum pfadbasierten "work" angetan !
werde aber deinen hinweis bzw link gleich mal aufsaugen ! das kann ja so nich weitegehen.. und lernwillig bin ich allemal !
möchte ja schon, dass ich diese arbeitsweise verstehe.. bisher hab ich nur "angewendet".. was zu diesem ergebnis führt, wie unschwer zu sehen 
kein gutes.. aber ein anfang !
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|

21-07-2009, 23:30
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Zitat:
|
bisher hab ich nur "angewendet"
|
Da sage ich jetzt nichts zu... außer, dass ich nicht das Gefühl habe, dass du weißt, wann mod_rewrite angewendet wird.
Aber egal .. Lies dir mal das ein oder andere zu dem Thema durch. Dann weißt du wann du wie mod_rewrite (sinnvoll) anwenden kannst.
Und wie ich dich einschätze, hast du in maximal 7 Tagen das Thema durch.
Zitat:
|
uppss... ein /site/images/bild.jpg geht... fehlte also das / am anfang... ok
|
Tipp: Wenn "site" später mal als example.com erreichbar sein soll, solltest du das "/site" in deiner Konfiguration zentral definieren können. Denn später auf einem Live-System example.com brauchst du das "/site" vermutlich nicht mehr, da das Document-Root des Webservers genau darauf zeigt.
Geändert von Abraxax (21-07-2009 um 23:32 Uhr)
|

22-07-2009, 00:19
|
|
ways
Member
|
|
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
|
|
ich geb mir mühe
ein paar kleinigkeiten konnte ich schon gleich verstehen und helfen bereits auch (-> kurze urls ).. mal sehen, wie lange ich benötige um diese verzeichnisbasierte vorgehensweise zu lösen... mit allen drum und dran...
__________________
Coder never die, they just GOSUB without RETURN
Mein System
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|