WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Problem med mod_rewrite (https://www.wn.se/forum/showthread.php?t=24607)

Kalledoo 2007-10-25 12:05

Tjenare!

Som det ser ut nu så kör jag mod_rewrite på mitt loopia konto.

Jag vill att http://www.domän.se/index.php?string=flygresor skall fungera som http://www.domän.se/flygresor/
Jag har samma rewriterule på en binero server och där fungerar det utmärkt.

Idag fungerar http://www.domän.se/flygresor
Men så fort jag lägger till ett / så blir det något knas och den läser inte in stringen ordentligt, kommer till en sida utan css osv.

Regeln jag satt är:
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z0-9_-]+)/?$ /index.php?string=$1

Någon med tips?

PKaze 2007-10-25 13:05

Eftersom du säger att du kommer till en sida utan css m.m. misstänker jag att det är sidan du kommer till som inte anropar css-filen rätt.
Inleder du css-filens namn med / så att den hämtas från roten och inte från mappen /flygresor/ (alltså "/ccsfilen.css" istället för "cssfilen.css")? Detsamma med bildnamn, de måste också börja med / för att läsas in korrekt. Jag gjorde det misstaget när jag började med mod_rewrite.

/Peter

Kalledoo 2007-10-25 13:14

Hej, Css.en anropas via /style.css så det borde inte vara felet.

Men frågan är: Vad är skillnaden på http://www.domän.se/flygresor och http://www.domän.se/flygresor/

?

Conth 2007-10-25 20:26

Vad jag kan se så tar du ju med allt efter / som parameter till index.php.
(RewriteRule ^([a-z0-9_-]+)/?$ /index.php?string=$1 )
Dvs http://www.domän.se/flygresor/ blir (väl?)
index.php?string=flygresor/

Antar att du inte hanterar värdet "flygresor/" i din "string"-parameter?!

Kalledoo 2007-10-25 20:34

Citat:

Originally posted by Conth@Oct 25 2007, 20:26
Vad jag kan se så tar du ju med allt efter / som parameter till index.php.
(RewriteRule ^([a-z0-9_-]+)/?$ /index.php?string=$1 )
Dvs http://www.domän.se/flygresor/ blir (väl?)
index.php?string=flygresor/

Antar att du inte hanterar värdet "flygresor/" i din "string"-parameter?!

Där har du förmodligen helt rätt Conth..

Jag får väl passa på att nämna att jag är ganska fräsch på det här.

Därav kommer frågeställningen. Finns det något jag kan göra för att det sista / inte skall räknas in i string parametern?

EmilIsberg 2007-10-26 12:41

Citat:

Originally posted by Kalledoo@Oct 25 2007, 12:05
Regeln jag satt är:
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z0-9_-]+)/?$ /index.php?string=$1

Du har så vitt jag kan se från din rewrite-regel gjort helt rätt.

Kod:

RewriteRule ^([a-z0-9_-]+)/?$ /index.php?string=$1
^ innebär början av raden (som är exempelvis "flygresor/")
$ innebär slutet av raden
/?$ innebär att före slutet kan det vara ett /.
[a-z0-9_-]+ innebär ett eller flera av specifierade tecken (matchar "flygresor").

([a-z0-9_-]+) innebär att det som matchas av parantes-innehållet ska grupperas i $-variabler.

Så resultatet borde bli /index.php?string=flygresor oavsett om du anropar /flygresor/ eller /flygresor.
Däremot kommer den inte att matcha för /flygresor/kalle.css .

Det jag brukar göra när jag testar sådana saker är att skriva om regeln lite:
Kod:

RewriteRule ^([a-z0-9_-]+)/?$ /phpinfo.php?string=$1
I phpinfo.php lägger jag sedan standard-phpinfo-anropet:
Kod:

<?php phpinfo(); ?>
I phpinfo-sidan kan du sedan söka efter _REQUEST["string"] och se vad det innehåller.

Det jag misstänker är att du gör något mer avancerat i ditt index.php och det är därför css-anropet blir fel.
Alternativt att du råkar göra en rewrite på css-anropet till index.php?string=style.css

Kontrollera källkoden till sidan (via webblässaren) när den ser fel ut och jämför med när den ser rätt ut.

gsoc 2007-10-26 16:34

Hadde ungefär samma problem igår, och för mig var det cssen, så pröva lägg in hela urlen alltså http://www.domän.com/style.css så ska det inte vara några tvivel...


Alla tider är GMT +2. Klockan är nu 23:07.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson