Kom ihåg mig?
Home Menu

Menu


Problem med mod_rewrite

Ämnesverktyg Visningsalternativ
Oläst 2007-10-25, 12:05 #1
Kalledoo Kalledoo är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 166
Kalledoo Kalledoo är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 166
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?
Kalledoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-25, 13:05 #2
PKazes avatar
PKaze PKaze är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 287
PKaze PKaze är inte uppkopplad
Medlem
PKazes avatar
 
Reg.datum: Nov 2003
Inlägg: 287
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
PKaze är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-25, 13:14 #3
Kalledoo Kalledoo är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 166
Kalledoo Kalledoo är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 166
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/

?
Kalledoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-25, 20:26 #4
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
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?!
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-25, 20:34 #5
Kalledoo Kalledoo är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 166
Kalledoo Kalledoo är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 166
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?
Kalledoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-26, 12:41 #6
EmilIsbergs avatar
EmilIsberg EmilIsberg är inte uppkopplad
Medlem
 
Reg.datum: Mar 2007
Inlägg: 106
EmilIsberg EmilIsberg är inte uppkopplad
Medlem
EmilIsbergs avatar
 
Reg.datum: Mar 2007
Inlägg: 106
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.
EmilIsberg är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-26, 16:34 #7
gsocs avatar
gsoc gsoc är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2007
Inlägg: 568
gsoc gsoc är inte uppkopplad
Mycket flitig postare
gsocs avatar
 
Reg.datum: Jun 2007
Inlägg: 568
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...
gsoc är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:33.

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