Er is prachtige documentatie te vinden over .htaccess en mod_rewrite, maar ik zit nu al uren te klooien met een probleem waardoor ik pas om 12 uur pannekoeken gegeten heb, en nog belet dit stukje onbegrip van mijn kant mij om me met belangrijkere creatieve zaken bezig te houden.
De .htaccess in kwestie was aan de ingewikkelde kant dus ik dacht dat het een domme fout van mij was, maar inmiddels heb ik het helemaal uitgekleed tot één raadsel.
Ik wil met behulp van de rewrite_engine een querystring doorpasen aan index.php als de URL een querystring bevat of als het opgevraagde GEEN bestand is.
Daarvoor heb ik twee regels bedacht:
en
Ze werken allebei los van elkaar zoals ik wil. Maar bij elkaar blijft de pagina laden (en laat niets zien). Ik krijg niet eens 500 Internal Server Error melding, gewoon mijn page blijft laden en als je dan in taakbeheer kijkt zie je dat Apache.exe 99% van de processor gebruikt en de swap wordt met de seconde groter.

Het lijkt op een oneindige loop van apache die de request aan het rewriten is, maar als ik naar de rules kijk zie ik dat er niet vanaf.
Hierbij de code van een aantal zaken die ik in .htaccess geprobeert heb. '/' being the document root:
/rewrite/index.php
/rewrite/index.php
Wie kan hier licht op schijnen?
-edit-
Even ten overvloede, de output zou zoiets als dit moeten zijn:
De .htaccess in kwestie was aan de ingewikkelde kant dus ik dacht dat het een domme fout van mij was, maar inmiddels heb ik het helemaal uitgekleed tot één raadsel.
Ik wil met behulp van de rewrite_engine een querystring doorpasen aan index.php als de URL een querystring bevat of als het opgevraagde GEEN bestand is.
Daarvoor heb ik twee regels bedacht:
code:
1
2
| RewriteCond %{QUERY_STRING} ^.+$
RewriteRule $ "/rewrite/index.php?foo=Query+String+Detected!" [L,QSA] |
en
code:
1
2
| RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $ "/rewrite/index.php?bar=That+is+no+file!" [L,QSA] |
Ze werken allebei los van elkaar zoals ik wil. Maar bij elkaar blijft de pagina laden (en laat niets zien). Ik krijg niet eens 500 Internal Server Error melding, gewoon mijn page blijft laden en als je dan in taakbeheer kijkt zie je dat Apache.exe 99% van de processor gebruikt en de swap wordt met de seconde groter.

Het lijkt op een oneindige loop van apache die de request aan het rewriten is, maar als ik naar de rules kijk zie ik dat er niet vanaf.
Hierbij de code van een aantal zaken die ik in .htaccess geprobeert heb. '/' being the document root:
/rewrite/index.php
code:
1
2
3
4
| <?php echo '<pre>'; print_r($_GET); echo '</pre>'; |
/rewrite/index.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| # testende aap
RewriteEngine On
RewriteBase "/"
#Deze alleen werkt
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule $ "/rewrite/index.php?foo=Query+String+Detected!" [L,QSA]
#Deze alleen werkt
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule $ "/rewrite/index.php?bar=That+is+no+file!" [L,QSA]
#Maar samen werken ze NIET, ook als je de regels omdraait werken ze niet
#RewriteCond %{QUERY_STRING} ^.+$
#RewriteRule $ "/rewrite/index.php?foo=Query+String+Detected!" [L,QSA]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule $ "/rewrite/index.php?bar=That+is+no+file!" [L,QSA]
#Volstaand voor mijn doeleinden kwam ik tot dit, maar deze werkt NIET, ook niet als je de Conditions omdraait
#RewriteCond %{QUERY_STRING} ^.+$ [OR]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule $ "/rewrite/index.php?baz=Geen+bestand+en/of+wel+een+Query+String!" [L,QSA]
#En deze (impliciete [AND]) werkt ook NIET
#RewriteCond %{QUERY_STRING} ^.+$
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule $ "/rewrite/index.php?baz=Geen+bestand+en/of+wel+een+Query+String!" [L,QSA] |
Wie kan hier licht op schijnen?
-edit-
Even ten overvloede, de output zou zoiets als dit moeten zijn:
(http://127.0.0.1/rewrite/index.php)
Array
(
)
(http://127.0.0.1/rewrite/index.php?Redsandro=true)
Array
(
[foo] => Query String Detected!
)
(http://127.0.0.1/rewrite/)
Array
(
[bar] => That is no file!
)
[ Voor 7% gewijzigd door Sando op 06-08-2007 03:13 . Reden: html output voorbeeldje ]
🇪🇺 Buy from EU (GoT)