WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   htaccess, klara alla urler med / på slutet (https://www.wn.se/forum/showthread.php?t=28316)

totoo 2008-04-01 23:04

Hej

Jag har ett litet besvär.

Jag kör med modellen att alla mina url:er slutar UTAN slash på slutet, alltså:

www.minsite.se/sahar-ser-urlen-ut

och inte

www.minsite.se/sahar-ser-den-inte-ut/

Men ibland lyckas någon besökare eller sökmotor sätta ett slash på slutet och bemöts då av en 404.

Naturligtvis kan jag lösa alla mina rewrites så att de klarar båda modellerna, men det är ju tokmycket jobb att skriva om 100 rewrites, och framförallt fult.

Helst vill jag bara att ett avslutande slash antingen ignoreras (sidan visas som att det inte fanns ett slash på slutet) eller att man redirectas till samma url fast utan slashet.

Hur gör ni, och vad borde man göra?

Kanske kan jag skriva en rewrite som gör att valfri url som avslutas med ett slash redirectas till samma url minus slashet och jag antar att det är den lösningen som är att föredra... Eller?

eliasson 2008-04-01 23:12

En mindre fin lösning som jag kör i en del projekt:
Kod:

RewriteEngine on
RewriteRule ^/inc/ - [L]
RewriteRule /([a-zA-Z0-9:]+)/([a-zA-Z0-9:]+)/([a-zA-Z0-9:]+) /index.php?1=$1&2=$2&3=$3 [L]
RewriteRule /([a-zA-Z0-9:]+)/([a-zA-Z0-9:]+) /index.php?1=$1&2=$2 [L]
RewriteRule /([a-zA-Z0-9:]+) /index.php?1=$1 [L]

Lycka till.

crazzy 2008-04-02 07:17

du skulle nog kunna lägga en rewrite framför dem andra som "förbereder"

Kod:

RewriteRule ^(/?.*)/$ $1

totoo 2008-04-03 00:59

Ah, tack du, fan vad enkelt man kunde skriva den rewriten då...

Men är det så man brukar göra eller?
Jag antar att någon mer än jag är lite besvärad av detta...

XWisdom 2008-04-08 08:48

Det räcker man skriver

RewriteRule ^sahar-ser-urlen-ut/?$ index.php?page=test [QSA]

"/?" i slutet gör att den kan ta både med / eller utan i URL:en

KarlRoos 2008-04-08 21:04

Ett sätt kan vara att köra med *.html ändelse så lär du garanterat inte få några slash efter din url ;)

Körde med detta på en sida som jag skapade nyss, extremt simpelt men funkar bra.
Citat:

RewriteEngine On
RewriteRule ^(.*).html index.php?page=$1


daniel_ 2008-04-09 11:37

Citat:

Kanske kan jag skriva en rewrite som gör att valfri url som avslutas med ett slash redirectas till samma url minus slashet och jag antar att det är den lösningen som är att föredra... Eller?
Precis, gör 301 från felaktiga till rätt URL.


Alla tider är GMT +2. Klockan är nu 02:18.

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