URLs afvangen met HTACCESS
Martijn Wieringa
16/07/2007 16:12:00Ik heb de volgende code in mijn HTACCESS file staan om ongeldige bestanden/paden af te vangen:
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:
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
Code (php)
1
2
3
4
5
6
7
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]
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:
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
18/12/2024 06:29:10Henk
16/07/2007 16:39:00En wat als je het zo probeerd?(Zo heb ik het, en het werkt.)
Code (php)
1
2
3
4
5
6
7
8
9
10
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
# 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
Martijn Wieringa
16/07/2007 16:43:00Tnx 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.
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
16/07/2007 16:44:00En wat als je het dubbel encodeert? Dus http://www.domain.tld/path%252Fpath/ ?