Ik heb een website met index.html. Daaronder zitten subrubrieken (dit zijn vaste .html pages). In die vaste html pages zitten linkjes naar paginas die bij die subpagina horen (site.nl/boten.html is vast, en daar zit een link in naar site.nl/roeiboot.html). In rootboot.html zit vervolgens weer een link naar roeiboot/12.html waarbij 12 het ID is van dat product.
DirectoryIndex index.html index.php index.htm index.txt
AddType application/x-httpd-php .php .php3 .html .phtml .foo
AddType application/x-httpd-php-source .phps .bar
php_flag register_globals on
RewriteEngine on
Options +FollowSymLinks
ErrorDocument 404 www.site.nl
RewriteCond %{HTTP_HOST} ^site.nl [NC]
RewriteRule ^(.*)$ www.site.nl/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*).html$ /product.php?website=$1 [L]
RewriteRule ^(.*)/(.*).html$ /subproduct.php?website=$1 [L]
door
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
blijven die vaste paginas dus gewoon werken en worden ze niet herschreven, ditzelfde geldt voor index.html. Als het bestand fysiek niet op de server staat wordt ie dus herschreven. Ik bots nu dus met het probleem dat product.html (niet vast) werkt, maar product/12.html niet werkt (dit wordt op dezelfde manier herschreven als product.html omdat (.*) alles betekend denk ik.
Wie o wie kan me helpen?
Ik heb altijd geleerd dat je moet beginnen met de meest specifieke regexp. In jouw htaccess staat eerst de generieke (alles dat eindigt op .html) en daarna pas de specifieke (alles dat een slash bevat en eindigt op .html).
Kortom, omdraaien die twee RewriteRule dingen.