.htaccess - /abc => /index.php?id=abc

Jeg ønsker å lage en enkel side der alle URL’ene er på dette formatet:

http://test.com/abc

Det er denne adressen som da vil åpnes:

http://test.com/index.php?id=abc

Jeg ønsker at brukere og crawlere kun skal forholde seg til førstnevnte. Det finnes vel en enkel måte å ordne dette i .htaccess, ikke sant?

[HTML]RewriteEngine On
RewriteRule ^(.*)$ /index.php?url=$1 [L][/HTML]

eller

[HTML]RewriteEngine On
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA][/HTML]

Hei, takk for forlsagene. Av en eller annen grunn virket ikke disse på min server, men jeg googlet basert på koden du oppgav og fant at dette fungerer:

RewriteEngine on
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?id=$1 [L]

"Cheat Sheet*
mod_rewrite Cheat Sheet (V2) - Added Bytes by Dave Child

Da ble det et problem med ÆØÅ :o

Med denne koden for index.php

<?php header('Content-Type: text/html; charset=utf-8'); echo $_GET["id"]; ?>

vil /index.php?id=æøå fremstilles riktig.

Men rewrite-regelen klarer ikke spesialtegn. Det er vel en liten fiks som gjør at den tar alle utf8-tegn?

Da er problemet med æøå løst :slight_smile:

RewriteEngine on
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L]

Tenkte ikke på at asterix ikke alltid virker, og det er nok bedre med ett regulært uttrykk uansett.