PDA

Bekijk Volledige Versie : Na location: veranderd url niet



Google alias
09/06/03, 19:50
Ik heb een bestand in directory $DOCUMENT_ROOT/hier met de inhoud:
<?php Header("Location: /daar/"; ?>
In het index document in de directory $DOCUMENT_ROOT/daar bevat
relatieve links.

Op de productiemachine, apache op linux werkt dit zonder problemen. Op
mijn ontwikkelmachine, apache op windows blijft /daar/ als lokatie in
de browser staan (Getest met MSIE, Mozilla en Opera) en werken de
relatieve links dus niet meer.

De httpd.conf bestanden zijn zo goed als gelijk (Andere directory
namen). Ik snap niet waar dat verschil in zit. Kan iemand mij dat
uitleggen. Bij Google kom ik niet verder dan uitleg welke commando's
er gebuikt moeten worden voor zo'n redirect.

Toni

Rene Pijlman
09/06/03, 20:05
Google alias:
>Ik heb een bestand in directory $DOCUMENT_ROOT/hier met de inhoud:
><?php Header("Location: /daar/"; ?>
>In het index document in de directory $DOCUMENT_ROOT/daar bevat
>relatieve links.
>
>Op mijn ontwikkelmachine, apache op windows blijft /daar/ als lokatie
>in de browser staan (Getest met MSIE, Mozilla en Opera)

Dat is normaal. Zo'n location ofwel redirect zegt tegen de
browser: gaat henen naar elders, en de browser doet dat.

Maar wat bedoel je met "blijft"? Hoe is die lokatie daar
gekomen? Je bent neem ik aan begonnen met "hier" en werd
verwezen naar "daar".

>Op de productiemachine, apache op linux werkt dit zonder problemen.

Ik ben benieuwd wat je daar precies mee bedoelt.

>en werken de relatieve links dus niet meer.

Snap ik niet. Relatieve links in /daar/ verwijzen naar /daar/.
Dat staat (als het goed is) los van _hoe_ de browser daar
gekomen is, direct of via een redirect.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Daniel Tryba
09/06/03, 20:05
Google alias <google@ligfiets.net> wrote:
[relative http location header]
> Op de productiemachine, apache op linux werkt dit zonder problemen. Op
> mijn ontwikkelmachine, apache op windows blijft /daar/ als lokatie in
> de browser staan (Getest met MSIE, Mozilla en Opera) en werken de
> relatieve links dus niet meer.

En wat sturen de servers exact na de header()? (bv lynx -head)

> De httpd.conf bestanden zijn zo goed als gelijk (Andere directory
> namen). Ik snap niet waar dat verschil in zit. Kan iemand mij dat
> uitleggen. Bij Google kom ik niet verder dan uitleg welke commando's
> er gebuikt moeten worden voor zo'n redirect.

Dat een relatieve location op 1 machine wel werkt is al iets wat niet
klopt, volgens rfc 2616
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) _moet_
de url een absoluteURI (zie rfc2396) zijn.

Met url_parse en $_SERVER is relatiev simpel een eigen functie te maken
welke je een relatieve url kan voeren zodat er een absolute location
header uitkomt.

--

Daniel Tryba

Google alias
10/06/03, 11:35
@Rene:

Ter verduidelijking: http://www.ligfiets.net/toni/hierdaar.gif
De browser laat de inhoud van daar zien. Maar in het URL venster staat
nog steeds hier. Ook de links verwijzen nog naar hier, zie de status
regel.

@Daniel:

> En wat sturen de servers exact na de header()? (bv lynx -head)

HTTP/1.1 200 OK
Date: Tue, 10 Jun 2003 08:00:47 GMT
Server: Apache/1.3.23 (Win32)
X-Powered-By: PHP/4.1.1
Connection: close
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Index of /daar</TITLE>
</HEAD>
<BODY>
<H1>Index of /daar</H1>
Enz. Enz.

> Dat een relatieve location op 1 machine wel werkt is al iets wat niet
> klopt, volgens rfc 2616
> (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) _moet_
> de url een absoluteURI (zie rfc2396) zijn.

O.K. Ik heb er een absolute URL of URI (Wat is eigenlijk het
verschil?) van gemaakt nu werkt het wel.

Dus weer een kwestie van Read The Fine RFC. Bedankt voor de moeite.

Toni

John Bokma
11/06/03, 01:35
Google alias wrote in message
<5016cb8d.0306100125.7e95f3ca@posting.google.com>...


>O.K. Ik heb er een absolute URL of URI (Wat is eigenlijk het
>verschil?) van gemaakt nu werkt het wel.


See http://www.w3.org/Addressing/

Een URL is een URI maar niet elke URI is een URL (vaag
dat ze wel schrijven URIs aka URLs... dat is volgens mij en
het plaatje er onder fout)

John

--
mail: mail (a) johnbokma.com
home: http://johnbokma.com/