PDA

Bekijk Volledige Versie : Extensie-aanvulling door Apache



Stephan Vierkan
10/09/07, 21:32
Om 'mooie url's' te krijgen zonder htaccess of andere truukjes, heb ik de volgende manier gevonden:
<?php list ($id) = explode("/", substr($_SERVER['PATH_INFO'],1)); ?>
Op deze wijze had ik url's als 'domein.nl/weblog/comments/3/' in plaats van 'domein.nl/weblog/comments.php?id=3'. Apache vult dus automatisch '.php' aan, aangezien er geen comments.jpg o.i.d. bestaat.

Nu ik verhuisd ben naar een andere server, met andere instellingen van Apache/2, werkt dit truukje niet meer (krijg 404 error). Het lijkt er dus op dat de server het aanroepen van een bestand zonder extensie niet meer pikt, aangezien weblog/comments.php/3 nog wel goed werkt.

Er moet dus een instelling worden veranderd (indien het nog ondersteund wordt), maar ik heb geen idee welke dat zou moeten zijn. Heeft iemand een idee?

Ramon Fincken
10/09/07, 21:38
je kan simpel kijken met
print_r($_SERVER);
en print_r($_REQUEST); wat er wel nog binnenkomt bijvoorbeeld?

Stephan Vierkan
10/09/07, 21:41
Dat heeft weinig zin, aangezien de pagina's die nu niet werken (weblog/comments/3, wat eigenlijk dus comments.php is in de map weblog), een 404 geven.
Het gaat erom dat 'domein.nl/index' niet werkt, maar domein.nl/index.php wel. Bij de vorige instelling vulde Apache de extensie aan.

Ramon Fincken
10/09/07, 21:44
hmm je kan kijken of de pagina met extensie bestaat ( file_exists() )

maar wat houd je tegen om nu een htaccess aan te maken?
zover ik weet zijn er weinig webhosts die dat niet accepteren ..

Stephan Vierkan
10/09/07, 21:48
hmm je kan kijken of de pagina met extensie bestaat ( file_exists() )
Dit is geen php-vraag, maar een Apache-vraag. Hetzelfde geldt voor bijvoorbeeld .jpg: domein.nl/plaatje.jpg werkt wel, domein.nl/plaatje werkt niet (terwijl dit eerst wel werkte)


maar wat houd je tegen om nu een htaccess aan te maken?
zover ik weet zijn er weinig webhosts die dat niet accepteren ..

ik heb een flink aantal sites waarbij ik deze truuk uithaal
mijn webhost accepteerde het wel, maar nu niet meer. Het is dus wel mogelijk, en ik wil gebruik maken van die mogelijkheid.

wonko
10/09/07, 21:56
De optie die je zoekt heet "multiviews" (kan je per dir in een .htaccess aanzetten).



The effect of MultiViews is as follows: if the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client's requirements.


Let echter op: http://mark.tranchant.co.uk/notes/multiviews

Stephan Vierkan
10/09/07, 22:12
De optie die je zoekt heet "multiviews" (kan je per dir in een .htaccess aanzetten).



Let echter op: http://mark.tranchant.co.uk/notes/multiviews

Dat is het inderdaad, lijkt mij. Ik heb mijn hoster al even gemaild of hij dit kan aanzetten/installeren.

Stephan Vierkan
12/09/07, 11:33
Multiviews is inmiddels aangezet, maar werkt nog niet naar behoren. Aangezien mijn hoster er nog niet uit komt, stel ik hier even de vraag.

domein.nl/logo werkt wel (is eigenlijk logo.jpg), maar domein.nl/index (is eigenlijk index.php) werkt nog niet. Volgens mij gaat het alleen om de .php-files die niet werken. Moet hiervoor iets extra's worden aangezet?

wonko
12/09/07, 11:36
Normaal niet, maar je php mimetype moet wel geconfigureerd worden op de gevraagde mime (text/html normaal). Als je hoster dit niet snapt, ga je beter naar een andere ;).