webForumDet fria alternativet

Apache: mod_rewrite laddad men inaktiv?

Webbservrarur Webbserver

5 svar · 606 visningar · startad av pettsson

pettssonMedlem sedan jan. 20021 122 inlägg
#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?

The_HulkMedlem 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]
pettssonMedlem 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?

The_HulkMedlem 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
pettssonMedlem 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?

pettssonMedlem 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?

130 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)