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?
adeneo
oktober 1, 2011, 12:51pm
2
[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
RewriteEngine on
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L]
adeneo
oktober 1, 2011, 4:41pm
6
Tenkte ikke på at asterix ikke alltid virker, og det er nok bedre med ett regulært uttrykk uansett.