Rewrite rules + relatief pad in html

Hallo,

Ik gebruik voor een webproject de volgende rewrite rules :

[code:1:6b1717ffb9]
RewriteEngine on

RewriteRule ^$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=nl&_SITE_SECTION=start&_SITE_PAGE=contact [L]
RewriteRule ^/$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=nl&_SITE_SECTION=start&_SITE_PAGE=contact [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^/([^/]+)$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=nl&_SITE_SECTION=$1 [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=nl&_SITE_SECTION=$1&_SITE_PAGE=$2 [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=$3&_SITE_SECTION=$1&_SITE_PAGE=$2 [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=$4&_SITE_SECTION=$1&_SITE_PAGE=$2&_SITE_PAGECATEGORY=$3 [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^([^/]+)/$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=nl&_SITE_SECTION=$1 [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^([^/]+)/([^/]+)/$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=nl&_SITE_SECTION=$1&_SITE_PAGE=$2 [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=$3&_SITE_SECTION=$1&_SITE_PAGE=$2 [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /index.php?%{QUERY_STRING}&_SITE_LANGUAGE=$4&_SITE_SECTION=$1&_SITE_PAGE=$2&_SITE_PAGECATEGORY=$3 [L]
[/code:1:6b1717ffb9]

Allereerst zie je 2x ‘dezelfde’ rules passeren, de 2e keer plaats ik telkens een / op het laatste erbij, het kan allicht eenvoudiger, maar heb er nog niet onmiddellijk achter gezocht, iemand een idee daarvoor?

Nu dan m’n echte vraag :

De rewrite rules op zich werken prima, alles komt goed binnen, en de querystring wordt telkens goed opgevuld. Nu zijn er geen problemen als ik enkel een site section,page en language opgeef.

De url ziet er dan als volgt uit : http://www.domain.com/page/section/language
In de template pagina’s kan ik images en styles linken door het volgende relatieve pad

[code:1:6b1717ffb9]
<img src="…/…/images/image.jpg">
[/code:1:6b1717ffb9]

Maar als ik er nog eens een extra page_category aan toevoeg, dus bijv : http://www.domain.com/page/section/category/language

Dan moet ik een extra diepte gaan instellen om images te linken dus :

[code:1:6b1717ffb9]
<img src="…/…/…/images/image.jpg">
[/code:1:6b1717ffb9]

Dat is dus niet erg handig, aangezien die pagecategory niet steeds zal opgevuld zijn.
De enigste oplossing die ik zie is :

[code:1:6b1717ffb9]
<img src="/images/image.jpg">
[/code:1:6b1717ffb9]

Dit werkt, aangezien www.domain.com/images een geldige dir is die effectief bestaat. Maar het liefst van al zou ik dus relatief willen werken, met …/…/ dus.

Iemand die een tip voor mij heeft, hiervoor?

Je kunt het proberen met de html base tag in de <head> van pagina's: http://www.w3schools.com/tags/tag_base.asp

Zelf ben ik echter fervent gebruiker van absolute paden. Wat is volgens jou het nadeel?

Succes!

Geen nadeel, buiten het feit dat ik alle reeds bestaande template's moet gaan aanpassen dan :-)

Sorry maar ik heb een extra vraag ipv een antwoord! Wat zijn paden of 'rewrite rules'? En waarom zijn ze nuttig?

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Ik ben geen expert... maar bedoel je misschien zoiets?

[code:1:b2638f12da]RewriteRule ^(.*.(jpg|gif|png))$ /images/$1 [L,PT][/code:1:b2638f12da]