webForumDet fria alternativet

Apache: mod_rewrite laddad men inaktiv?

Webbservrar

5 svar · 606 visningar · startad av pettsson

Medlem sedan jan. 20021 122 inlägg
Frågan#1

Har problem att använda mod_rewrite på min webbserver (Gentoo, Apache 2.0.58-r2, PHP 5.1.6-r6), modulen är laddad i httpd.conf, och phpinfo() visar den också som laddad. Men den gör ingenting åt det som står i .htaccess.
Om jag har denna .htaccess:

RewriteEngine On
RewriteRule ^link([^/]*)\.html$ rewrite.php?link=$1 [L]

Och rewrite.php:

<html>
<body>
<?
if($_GET['link']==1)
 echo"Utan rewrite";
elseif ($_GET['link']==2)
 echo "Med mod_rewrite";
else
 echo"mod_rewrite Test";
?>
<p><a href="rewrite.php?link=1">LINK1</a> = rewrite.php?link=1</p>
<p><a href="link2.html">LINK2</a> = link2.html</p>
</body>
</html>

Om jag trycker på link2.html får jag 404. Varför? Behövs det fler direktiv i .htaccess?

Medlem sedan juni 20031 837 inlägg
#2

är du 100% säker på att den börjar med link och inte något annat?
testa att ta bort ^ i början

RewriteEngine On
RewriteRule link([^/]*)\.html$ rewrite.php?link=$1 [L]
Medlem sedan jan. 20021 122 inlägg
#3

100% ska man ju inte säga sig vara utan att ha provat, så jag testade ditt förslag, men det funkar inte det heller.
I apaches error_log står det "file does not exist: /var/www/localhost/link2.html", så det verkar inte som om den ens försöker använda rewrite. Ideér?

Medlem sedan juni 20031 837 inlägg
#4

på ett annat ställe där jag använder mod_rewrite såg min kod ut på följande sätt:

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase /
RewriteRule ^se/products/(.*) /se/index.php?artnr=$1

så då borde din kunna se ut så här:

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase /
RewriteRule ^link([^/]*)\.html$ rewrite.php?link=$1

alternativ testa utan ^ och $

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase /
RewriteRule link([^/]*)\.html rewrite.php?link=$1
Medlem sedan jan. 20021 122 inlägg
#5

Nix, fortfarande 404. Har det något med någon sökväg att göra? Är det så att mod_rewrite letar efter dokumentet att länka till någon helt annan stans?

Medlem sedan jan. 20021 122 inlägg
#6

Hittade inställningen AllowOverride i httpd.conf, och vidare undersökning av dokumentationen ger för handen att den skulle kunna ha just effekten att .htaccess ignoreras.
Flyttade över testfil och .htaccess till min hemkatalog, och nu får jagg http500 istället :) Tror att det är ett RewriteBase som ska göras rätt för att det ska funka där, men målet är ju att få det att funka i huvudkatalogen. Satte AllowOverride till All, men det hjälpte inte. Förslag?

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)