"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP - path_info - directory

noledge 27.01.2003 - 16:38 1148 22
Posts

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
ich hab im moment folgendes problem:

um zu erreichen, dass google eine seite weiter als nur 1 ebene indiziert, möchte ich die variablen aus der url bringen - dh aus

test.php?id=5

wird

test.php/id/5

dazu nahm ich die path_info-variable, splitte sie nach "/" auf und erstelle variablen, denen ich die zugehörigen werte zuordne - soweit ja kein problem.

allerdings denkt der browser jetzt, dass er sich im verzeichnis /test.php/id/5 befindet - und findet auch daher die images/stylesheets nicht, die im selben verzeichnis wie die test.php liegen, weil die pfade eben relativ und nicht absolut angegeben werden.

wie kann man das am schönsten lösen? ein (unsauberer) workaround wäre, die anzahl der / nach dem test.php zu zählen, und damit einen prefix wie "../../" zu erstellen, der vor jedes image/stylesheer gehängt wird - nicht wirklich das gelbe vom ei.

anyone?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
<BASE HREF="../../">

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
weiters für suchmachinen (nicht nur diese) interessant: "Last-Modified" header und if-modified-since requests für semi-statischen content.

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
thx, werds morgen ausprobieren...

wobei's fast gscheiter wär, einfach das root-directory der applikation in einem config-file zu setzen, mit dem dann der base href gebildet wird. siedelts in ein anderes directory (was sicher passieren wird) passt man einfach 1x den pfad an.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von noledge
thx, werds morgen ausprobieren...

wobei's fast gscheiter wär, einfach das root-directory der applikation in einem config-file zu setzen, mit dem dann der base href gebildet wird. siedelts in ein anderes directory (was sicher passieren wird) passt man einfach 1x den pfad an.
wieviele "../" du machst hat ja nix mit dem verzeichnis, sondern mit der anzahl der argumente zu tun ;)
insofern müsstest du die "../"'s dynamisch immer neu generieren - je nach anzahl der argumente...

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
das is mir klar, hab ich ja oben erwähnt - aber meine neue idee geht dahin, bei

http://www.blah.org/set/development...3/test.php/id/5

nicht ../../ zu setzen (bzw, dynamisch zu generieren), sondern

/set/development/release3/

per gesetzter config-variable zu setzen.

weniger aufwand :)

edit: ah, seh grad, ich habs hier nicht geschrieben, das war mitn funka im icq - sorry :p

<noledge->funka> jo, werds einfach mitn base machen
schrägstriche hinterm .php zählen und dann des konstrukt erzeugen

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von noledge
/set/development/release3/
wenn dann:
http://www.blah.org/set/development/release3/
;)

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
:confused:

ein link auf dem server http://www.blah.org

<a href="/bla2/bla3">link</a>

linkt bei mir auf http://www.blah.org/bla2/bla3

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
ich wuerds entweder gleich mit absoluten pfadne machen
wenn das aus port gruenden nicht geht statt / halt $root
oder im index.php $SCRIPT_NAME mit $REQUEST_URI vergleichen
wie im icq schon erwaehnt und das so dynamisch machen

aber ich pers. halt <base bla oder absolute pfade fuers gscheiterste

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von noledge
:confused:

ein link auf dem server http://www.blah.org

<a href="/bla2/bla3">link</a>

linkt bei mir auf http://www.blah.org/bla2/bla3
wenn du im root bist schon... wart - muss ich jetzt echt testen ob ich nen schwachsinn erzähl :D

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
<base href="/tests/">
und
<a href="url_search_test2.php">liiiink!</a>

linkt bei mir auf:
http:///tests/url_search_test2.php
;)
anscheinend kennt der da echt nur absolute angaben??? :confused:

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
hm - naja, dann halt mit gesamten pfad.

in der config
$basedir = 'http://www.blah.org/set/development/release3/';

und in den files dann
<base href=\"$basedir\">

sollt hinhaun - näheres dann morgen :)

edit: disclaimer: die domain blah.org gehört nicht mir, sondern wird nur zu beispielzwecken herangezogen :D

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
:eek:

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von noledge
edit: disclaimer: die domain blah.org gehört nicht mir, sondern wird nur zu beispielzwecken herangezogen :D
:eek: und ich dachte du wärst jackie!
http://www.blah.org/jackiephotos/ja...nuaryseatsm.gif
:D

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
also wie man das <BASE HREF= bildet, ist dann schon egal, du wolltest ja einfach verhindern, daß du einen path-prefix vor jeden link, bild, css usw setzen mußt.
der vorteil für den relativen pfad ist halt, daß man schneller die site verschieben kannst, und nicht jedesmal eine config anpassen mußt.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz