[opgelost??] trailing slash probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

10/06/2011 12:44:50
Quote Anchor link
Oke, dit wordt een lastige vrees ik. Gisteren (en nu nog steeds) had ik een probleem met een .htaccess bestand. (voor de liefhebbers, lees hier)

Inmiddels ben ik erachter gekomen dat er iets fout gaat omdat de server een zogenaamde "trailing slash" achter de url toevoegt.

Als je in je browser bijvoorbeeld intypt www.phphulp.nl dan wordt er in de adresbalk van de server automatisch een / achter gezet. Er staat dan ineens www.phphulp.nl/

Dit zelfde effect treedt op als je in je url een directory aanroept. Stel in de "www" map op de server staat een directory "configuratie". Als je nu in je browser intypt www.mijnsite.nl/configuratie dan denkt de server in eerste instantie dat je een bestand (en niet een directory) aanroept. De server "ziet" vervolgens dat het om een directory gaat en zal daarom automatisch de url aanpassen en een trailing slash toevoegen. De adresbalk van de browser wordt nu automatisch aangepast in www.mijnsite.nl/configuratie/
Ik weet niet zeker of dit klopt, maar ik las ergens dat dit een redirect is die door de server wordt uitgevoerd. De server "ziet" dat het een directory is en redirect vervolgens naar de "juiste" url, namelijk precies dezelfde url maar dan met een slash erachter.

Oké, en wat is nu het probleem? In alle gevallen waarin ik een url aanroep gaat dit prima, behalve als ik dus de naam van een directory aanroep.

Dit gaat goed:
www.mijnsite.nl/test
www.mijnsite.nl/blabla/bla

Dit gaat fout (omdat de directory configuratie bestaat):
www.mijnsite.nl/configuratie

De server verandert de url / adresbalk in www.mijnsite.nl/configuratie/
en mijn .htaccess file verandert vervolgens de adresbalk in www.mijnsite.nl/configuratie/?route=configuratie

Met andere woorden, iemand typt als url www.mijnsite.nl/configuratie en vervolgens wordt de url in de browser aangepast in www.mijnsite.nl/configuratie/?route=configuratie

Ten eerste ziet dit er niet uit, maar ten tweede weet iemand die kwaad wil hierdoor dat er blijkbaar een directory "configuratie" aanwezig is.

Heeft iemand een idee of dit probleem kan worden opgelost? Is er een manier om te voorkomen dat die trailing slash automatisch wordt toegevoegd, of weet iemand een andere oplossing? Ik ben het namelijk echt even kwijt...
Gewijzigd op 10/06/2011 16:30:39 door Ozzie PHP
 
PHP hulp

PHP hulp

14/02/2025 21:21:11
 
The Force

The Force

10/06/2011 14:30:45
Quote Anchor link
Onderstaand toevoegen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteCond %{REQUEST_FILENAME} !-d


Dat zorgt er voor dat er geen rewrite optreed op het moment dat je een map aanspreekt.
 
Ozzie PHP

Ozzie PHP

10/06/2011 14:39:06
Quote Anchor link
Thanks, maar het "lullige" is dat ik ook in dat geval wil dat er rewrite optreedt.

ALs iemand www.mijnsite.nl/configuratie aanroept, dan wil ik dat $_GET['route] de waarde configuratie heeft. Maar omdat die mapnaam toevallig dezelfde naam heeft werkt het niet.

Ik heb nu mn htaccess ietsjes gewijzigd, waardoor het nu iets beter werkt. Het stukje "$route=configuratie" komt nu niet meer tevoorschijn in de adresbalk, maar wel nog de trailing slash. Als ik nu nog iets kan verzinnen waardoor de trailing slash (indien aanwezig) wordt verwijderd, dan is het probleem opgelost!

Hier de htaccess code:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} .(inc|ini|log|p?ht.*|php.*|txt)$
RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]
RewriteRule ^(.*)/$ index.php?route=$1 [QSA,L]

[OPLOSSING hoop ik tenminste]

Ik heb de trailinig slash na lang zoeken uitgezet door dit stukje code in mn htaccess toe te voegen. Het gaat om een instelling van de Apache server.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<IfModule mod_dir.c>
   DirectorySlash Off
</IfModule>


Nu wordt er geen slash meer toegevoegd en lijkt het probleem dus verholpen. Ik test op een Apache server. Ik weet niet of een Windows server ook zo'n automatische slash toevoegt...
Gewijzigd op 10/06/2011 16:29:56 door Ozzie PHP
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.