07 april, 2008

Apache: Testa mod_rewrite

Det är ett exempel för de som använder webbservern Apache. I exemplet nedanför testar jag med PHP om servern har blivit korrekt konfigurerad för användning av "mod_rewrite".

Skapa först en fil som du kallar för rewrite.php och skriv sedan följande kod i filen:

<html>
<head>
<title>Testa Apache mod_rewrite</title>
</head>
<body>

<h2 style="text-align: center;">

<?php
// En variabel som används i testet
if ($_GET['link']==1)
{
echo"Du använder inte mod_rewrite";
}
elseif ($_GET['link']==2)
{
echo"Grattis! Du använder Apache's mod_rewrite";
}
else
{
echo"Apache mod_rewrite Test";
}
?>

</h2>
<p><a href="rewrite.php?link=1">Länk 1</a> = rewrite.php?link=1</p>

<p><a href="link2.html">Länk 2</a> = link2.html</p>
</body>
</html>

Skapa sedan en fil som du kallar för .htaccess och lägg sedan till följande kod i filen:
RewriteEngine On
RewriteRule ^link([^/]*)\.html$ rewrite.php?link=$1 [L]

Så här fungerar det: Båda länkarna leder till samma sida men de ser olika ut. Länk 1 anropar rewrite.php direkt med parametern 1. Länk 2 anropar link2.html och detta upptäcker mod_rewrite (om vi har gjort rätt) och ser efter i sin RewriteRule vilka adresser som ska omvandlas till rewrite.php?link=x.

Fotnot
I min httpd.conf har jag satt
AllowOverride All
som tillåter att vi kan ändra allt i en .htaccess-fil, och
LoadModule rewrite_module modules/mod_rewrite.so
som aktiverar mod_rewrite för Apache.

Källa
Jag fann koden på följande sida how-to-test-check-if-mod-rewrite-is-enabled och den hör till Webune.com. Men det är jag som har översatt till svenska och gjort koden mer lättläslig.

Inga kommentarer:

Välkomna till bloggen

Välkomna ska ni vara kära besökare. Jag skriver om IT för att det är kul och för att jag vill dela med mig av information och kunskap. Jag försöker hålla bloggen så kategoriserad som möjligt för att ni enklare ska hitta intressanta länkar och artiklar.