URLs afvangen met HTACCESS

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Wieringa

Martijn Wieringa

16/07/2007 16:12:00
Quote Anchor link
Ik heb de volgende code in mijn HTACCESS file staan om ongeldige bestanden/paden af te vangen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
# Start rewrite engine
RewriteEngine On

# Catch non existing files and/or folders
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [NC,L]


Er treed echter een probleem op wanneer er in de URL een '%2F' staat (een url-ge-encode slash). Wanneer het symbool in de query string staat, gaat het goed, maar niet als deze in het 'path' staat.

Bijvoorbeeld:
http://www.domain.tld/path%2Fpath/

Ik krijg dan de standaard apache fout melding:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Not Found
The requested URL /path/path was not found on this server.



De URL: 'http://www.domain.tld/path/path/' wordt wel goed afgevangen.

Alles wijst er (in mijn ogen) op dat de 'fout' op een hoger niveau wordt afgevangen door de server; en de htaccess-file nooit wordt 'geevalueert'. Weet iemand hoe ik dit kan verhelpen?

M.v.g
Martijn
 
PHP hulp

PHP hulp

18/12/2024 06:29:10
 
Henk

Henk

16/07/2007 16:39:00
Quote Anchor link
En wat als je het zo probeerd?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
RewriteEngine On
    # De voorwaarden van het rewriten zijn dat er geen bestand of map is met de opgegeven naam
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    
    # Ik weet niet wat het volgende is :-P
    RewriteRule ^.* - [L]
    
    # Als de opgegeven ding geen bestaand bestand of map is dan rewriten we
    RewriteRule ^(.*)/? index.php
(Zo heb ik het, en het werkt.)
 
Martijn Wieringa

Martijn Wieringa

16/07/2007 16:43:00
Quote Anchor link
Tnx voor je input, ik heb het getest, maar het probleem blijft bestaan.

Ik denk dan ook dat de fout al op een 'hoger niveau' wordt gegenereerd, en niet bij/na het laden van de HTACCESS file.
 
Henk

Henk

16/07/2007 16:44:00
Quote Anchor link
En wat als je het dubbel encodeert? Dus http://www.domain.tld/path%252Fpath/ ?
 
Martijn Wieringa

Martijn Wieringa

16/07/2007 16:54:00
Quote Anchor link
hmm, typisch; dan wordt de HTACCESS wel geladen!
dus dat werkt.. maar zou toch niet hoeven?
 



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.