Het volgende probleem:
De bedoeling is dat alle requests worden herschreven en wel als volgt:
subdomein.host.nl ==> /host/script/subdomein/
subdomein.host.nl/foo/?bar=true ==> /host/script/subdomein/foo/?bar=true
host.nl/foo/bar/ ==> /host/script/www/foo/bar/
enz.
Hierbij wordt dus gebruik gemaakt van multiviews.
Nu heb ik het volgende in de virtualhost-config staan:
Regel vier is er om te voorkomen dat er loopjes ontstaan.
Regel 10 t/m 14 zijn er om 'host.nl' als het subdomein 'www' te behandelen.
Dit alles werkt, maar niet helemaal.
Volgende problemen doen zich namelijk voor:
- sub.host.nl zonder verdere request uri wordt niet herschreven.
- als ik www.host.nl/info/foo/bar aanroep (en script zorgt ervoor dat phpinfo() wordt weergegeven) dan zie ik deze waarden:
_SERVER["REQUEST_URI"]: "/info/foo/bar"
_SERVER["PATH_INFO"]: "/www/info/foo/bar/foo/bar/"
Waarom worden foo en bar twee keer weergegeven in de path_info?
Ligt dit aan de rewrite rules?
En natuurlijk, hoe krijg ik deze rules ook werkend voor een aanroep zonder request uri?
bvd!
De bedoeling is dat alle requests worden herschreven en wel als volgt:
subdomein.host.nl ==> /host/script/subdomein/
subdomein.host.nl/foo/?bar=true ==> /host/script/subdomein/foo/?bar=true
host.nl/foo/bar/ ==> /host/script/www/foo/bar/
enz.
Hierbij wordt dus gebruik gemaakt van multiviews.
Nu heb ik het volgende in de virtualhost-config staan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| RewriteEngine on
RewriteCond %{HTTP_HOST} ^.+\.host\.nl$
RewriteCond %{REQUEST_URI} !^/host/
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^(.+)\.host\.nl(.*) /host/script/$1/$2 [L]
RewriteCond %{HTTP_HOST} ^host\.nl$
RewriteCond %{REQUEST_URI} !^/host/
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^host\.nl(.*) /host/script/www/$1 [L] |
Regel vier is er om te voorkomen dat er loopjes ontstaan.
Regel 10 t/m 14 zijn er om 'host.nl' als het subdomein 'www' te behandelen.
Dit alles werkt, maar niet helemaal.
- sub.host.nl zonder verdere request uri wordt niet herschreven.
- als ik www.host.nl/info/foo/bar aanroep (en script zorgt ervoor dat phpinfo() wordt weergegeven) dan zie ik deze waarden:
_SERVER["REQUEST_URI"]: "/info/foo/bar"
_SERVER["PATH_INFO"]: "/www/info/foo/bar/foo/bar/"
Waarom worden foo en bar twee keer weergegeven in de path_info?
En natuurlijk, hoe krijg ik deze rules ook werkend voor een aanroep zonder request uri?
bvd!