Bekijk Volledige Versie : [PHP] virtual path
Hi,
Ik ben bezig een bestaande site op te leuken met wat PHP. De ongeveer
3000 bestaande pagina's worden gewoon ingeladen in een PHP script. Op
het moment gebruik ik hiervoor php_auto_prepend, en dat werkt
redelijk. Helaas heeft dit een aantal beperkingen. Wat ik daarom het
liefst wil is dat alle pagina's naar 1 PHP script verwijzen;
/Sectie/Pagina.html => page.php?url=testmachine/Sectie/Pagina.html
Deze vertaalslag wil ik graag alleen intern, en deze moet dus niet
voor de gebruiker zichtbaar zijn.
Ik heb dit werkend onder linux, maar helaas moet er nog wat Windhoos
software op de server draaien.
NB mod_rewrite werkt ook niet, ligt misschien aan mij (of aan
windows), maar krijg het niet werkend.
Groeten,
Peer
Daniel Tryba
17/04/03, 19:35
Peer <hepdesk@xs4all.nl> wrote:
> Wat ik daarom het liefst wil is dat alle pagina's naar 1 PHP script
> verwijzen;
> /Sectie/Pagina.html => page.php?url=testmachine/Sectie/Pagina.html
> NB mod_rewrite werkt ook niet, ligt misschien aan mij (of aan
> windows), maar krijg het niet werkend.
Als je niet vertelt niet wat je probeert op welke software! Dan hoef je
natuurlijk ook geen antwoord te verwachten wat wel eens zinnig zou
kunnen zijn!
BTW als alternatief zou je je page.php als custom errorpage kunnen
instellen en dan mbv $_SERVER['REDIRECT_URL'] te opgevraagde pagina te
achterhalen.
--
Daniel Tryba
Ik gebruik Apache 2.0.44(win32) PHP/4.3.1.
De custom errorpage heeft niet mijn voorkeur, volgens mij stuurt deze
pagina altijd een 404 header voor de pagina zelf.
Over de mod_rewrite, wat ik doe:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !main.php
RewriteRule ^/(.*) main.php
RewriteLog "c:/Program Files/Apache Group/Apache2/logs/rewrite.txt"
RewriteLogLevel 9
Geeft in de logs:
127.0.0.1 - [rid#4753d8/initial]
(2) init rewrite engine with requested uri /HetAdres/
127.0.0.1 - [rid#4753d8/initial]
(3) applying pattern '^/(.*)' to uri '/HetAdres/'
127.0.0.1 - [rid#4753d8/initial]
(4) RewriteCond: input='/HetAdres/' pattern='!main.*' => matched
127.0.0.1 - [rid#4753d8/initial]
(2) rewrite /HetAdres/ -> main.php
127.0.0.1 - [rid#4753d8/initial]
(2) local path result: main.php
Het probleem is dat Apache main.php als local path neemt, en dat
levert een "Bad Request"-pagina op. Een redirect werkt wel, maar dat
ziet de gebruiker dan weer. Onder linux kun je gewoon een script als
documentroot opgeven. Zoiets zoek ik eigenlijk.
Gr,
Peer
Daniel Tryba <news_nl.internet.www.server-side@canopus.nl> wrote in message news:<b7mojo$bf3$1@news.tue.nl>...
> Peer <hepdesk@xs4all.nl> wrote:
> > Wat ik daarom het liefst wil is dat alle pagina's naar 1 PHP script
> > verwijzen;
>
> > /Sectie/Pagina.html => page.php?url=testmachine/Sectie/Pagina.html
>
> > NB mod_rewrite werkt ook niet, ligt misschien aan mij (of aan
> > windows), maar krijg het niet werkend.
>
> Als je niet vertelt niet wat je probeert op welke software! Dan hoef je
> natuurlijk ook geen antwoord te verwachten wat wel eens zinnig zou
> kunnen zijn!
>
> BTW als alternatief zou je je page.php als custom errorpage kunnen
> instellen en dan mbv $_SERVER['REDIRECT_URL'] te opgevraagde pagina te
> achterhalen.
Daniel Tryba
18/04/03, 20:50
Peer <hepdesk@xs4all.nl> wrote:
> De custom errorpage heeft niet mijn voorkeur, volgens mij stuurt deze
> pagina altijd een 404 header voor de pagina zelf.
Nee, je kan met header() een 200 terug geven.
> Over de mod_rewrite, wat ik doe:
>
> RewriteEngine On
> RewriteCond %{REQUEST_FILENAME} !main.php
> RewriteRule ^/(.*) main.php
> RewriteLog "c:/Program Files/Apache Group/Apache2/logs/rewrite.txt"
> RewriteLogLevel 9
Lijkt me niets mis mee, dus wellicht moet je eens uitzoeken of er bugs
in mod_rewrite/windows ztten.
--
Daniel Tryba
Peer <hepdesk@xs4all.nl>:
> Wat ik daarom het liefst wil is dat alle pagina's naar 1 PHP script
> verwijzen;
>
> /Sectie/Pagina.html => page.php?url=testmachine/Sectie/Pagina.html
>
> Deze vertaalslag wil ik graag alleen intern, en deze moet dus niet voor
> de gebruiker zichtbaar zijn.
>
> NB mod_rewrite werkt ook niet, ligt misschien aan mij (of aan windows),
> maar krijg het niet werkend.
Als je uitgaat van je globale httpd.conf:
RewriteRule /(.*) /page.php?url=testmachine/$1
En wel even checken dat je page.php zelf niet rewrite.
--
robert
Matthijs Laan
19/04/03, 01:20
Peer wrote:
> Ik ben bezig een bestaande site op te leuken met wat PHP. De ongeveer
> 3000 bestaande pagina's worden gewoon ingeladen in een PHP script. Op
> het moment gebruik ik hiervoor php_auto_prepend, en dat werkt
> redelijk. Helaas heeft dit een aantal beperkingen. Wat ik daarom het
> liefst wil is dat alle pagina's naar 1 PHP script verwijzen;
>
> /Sectie/Pagina.html => page.php?url=testmachine/Sectie/Pagina.html
>
> Deze vertaalslag wil ik graag alleen intern, en deze moet dus niet
> voor de gebruiker zichtbaar zijn.
>
> Ik heb dit werkend onder linux, maar helaas moet er nog wat Windhoos
> software op de server draaien.
>
> NB mod_rewrite werkt ook niet, ligt misschien aan mij (of aan
> windows), maar krijg het niet werkend.
Dat kan volgens mij redelijk simpel met AliasMatch:
AliasMatch ^/paginas/ /pad/naar/page.php
met $request_uri = $_SERVER['SCRIPT_NAME'];
Matthijs
Jan Ehrhardt
19/04/03, 12:50
Peer in nl.internet.www.server-side (18 Apr 2003 01:02:11 -0700):
>De custom errorpage heeft niet mijn voorkeur, volgens mij stuurt deze
>pagina altijd een 404 header voor de pagina zelf.
Nee, hoor. Die kun je veranderen met
header("HTTP/1.1 200 OK") of
header("Status: 200 OK")
Welke werkt hangt van je OS af. Even proberen dus.
Jan
--
Dropdown and pushup menu's - http://cgi.monitor.nl/cms.html