Hjælp til .htaccess & evt. index.php

Tags:    htaccess

Er der nogen af jer kloge hoveder, der ved hvordan denne URL rettes.

RewriteRule ^([^/]+)/?$ index.php?page=$1 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?page=$1&$1=$2 [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?page=$1&$1=$2&$2=$3 [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?page=$1&$1=$2&$2=$3&$3=$4 [L]
RewriteRule (.*) /index.php?page=$1 [L]


Denne del skriver jeg sådan her ud i <a href=

<a href="test/">Test</a>

Hvor jeg har det her i index.php

Fold kodeboks ind/udPHP kode 


men den godkender kun <a href="test">Test</a> men ikke <a href="test/">Test</a>

Kan den ikke udrettes, så den har / til sidst. Og ikke uden. Men med.

Har prøvet en del. Men lykkes ikke.



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Den nemme måde at gøre det på er at rewrite alle ting der ikke er filer til index.php og så foretage routingen i index.php.

Noget ala.

Fold kodeboks ind/udKode 


Så kan du bruge $_SERVER['REQUEST_URI'] i PHP til at få den requestede side ud.

Så skal du bare huske at have en catch-all til sidst, som hvis der ikke er fundet en matchende route, så smider den en 404 side (OG HEADER).

Mit eget setup plejer at være noget lignende:
Fold kodeboks ind/udKode 


Det der sker er egentlig bare at alle requests der ikke er til filer af typen .css, .js, .jpg osv til index.php. 404 fejl på ovennævnte typer sendes også til index.php. Jeg håndterer routing og 404 i min index.php.



Indlæg senest redigeret d. 22.04.2012 14:03 af Bruger #17015
Så spørger jeg nok dumt, hvorfor er den her kode jeg skrev ind, nem at lave. Men at afslutte linket med / er så besværligt ? :)

Syntes godt nok det har drillet en del.

Bruger jeg: RewriteRule ^test/ test.php [L]

Så får jeg test.php frem, domæne.dk/test/

Men kun indholdet, ikke designet. :(



Indlæg senest redigeret d. 22.04.2012 14:04 af Bruger #17118
Jeg har ikke kigget din kode igennem, for det er en meget upraktisk måde du griber det an på. Det er noget nemmere og noget mere fleksibel, at gøre som jeg foreslår, end de der rewrites.

Men hvis du bare vil fjerne trailing slash fra din page variabel kan du bare skrive $page = rtrim($_GET['page'], '/');



Indlæg senest redigeret d. 22.04.2012 14:14 af Bruger #17015
t