---
title: "Rewrite som funkar för både katalog och katalog/ ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbservrar/188169-rewrite-som-funkar-för-både-katalog-och-katalog"
topic: "Webbservrar"
topic_url: "https://www.webforum.nu/amne/webbservrar"
author: "bassebhu"
published: "2011-10-30T15:30:35.000Z"
updated: "2011-11-01T10:10:45.000Z"
replies: 5
views: 860
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/webbservrar/188169-rewrite-som-funkar-för-både-katalog-och-katalog"
---

# Rewrite som funkar för både katalog och katalog/ ?

## #1 — bassebhu, 2011-10-30T15:30Z

Hej alla glada!

Jag har detta i min .htaccess:

```
RewriteEngine on
RewriteRule ^(home|about|contact)/?$ index.php?action=$1
```

Och vill att t.ex. både hej.com/about och hej.com/about/ ska generera: hej.com/index.php?action=about

Det verkar som att min kod i båda fallen skickar ut "about" i action-variabeln, men när jag skriver about/ så hittar den dessutom på något annat och skriver om så att alla mina andra sökvägar inte hittas (till bilder och stylesheet-fil m.m.). Jag kan inte regexp så bra så ni ser säkert direkt hur jag borde göra i stället ;) 

Tack!

edit/
När jag skriver hej.com/about**/** så blir alla mina länkar på sidan hej.com/about/sida.html

Permalänk: https://www.webforum.nu/p/188169

## #2 — nitro2k01, 2011-10-30T19:29Z

Felet beror på att webbläsaren tolkar /about/ som att du befinner dig i en mapp och letar efter din (relativt angivna) stilmall i /about/stilmall.css. Samma sak med länkar. Den eklaste och bästa lösningen är att alltid ange absoluta sökvägar, dvs börja sökvägen med /.

```
<a href="[u]/[/u]sida.html">
<link rel="stylesheet" type="text/css" href="[u]/[/u]stilmall.css" />
```

Permalänk: https://www.webforum.nu/p/2287888

## #3 — bassebhu, 2011-10-30T22:28Z

Ja, det funkar ju faktiskt  :) Tack.

Återkommer säkert med fler rewrite-frågor snart  ;)

Permalänk: https://www.webforum.nu/p/2287897

## #4 — bassebhu, 2011-11-01T01:13Z

I'm back  ;) 

Jag kör detta och det funkar på en server, men på en annan så får jag fel så länge jag har med rad 3-4 också. Bara rad 1-2 funkar bra!

```
RewriteEngine on
RewriteRule ^(home|about|contact)/?$ index.php?action=$1
RewriteRule ^(home|about|contact)/([A-Za-z0-9-_]+)/?$ index.php?action=$1&person=$2
RewriteRule ^(home|about|contact)/([A-Za-z0-9-_]+)/ID-([0-9]+)-([A-Za-z0-9-_]+)/?$ index.php?action=$1&person=$2&id=$3
```

Går det att skriva det jag vill göra på ett bättre sätt också? ;) 

Och sista frågan, om jag på detta vill kunna lägga till vanliga querystrings, är det möjligt, utan att den tolkar in min querystring i regexp:en?
T.ex.
about/basse/ID-1-minpost/?keyword=sökord

Jag är som sagt ute på okänt vatten här, men prio ett är att få min rewrite-kod att funka på båda servrarna. Den ena verkar tolka hårdare eller nåt...

Tack!

Permalänk: https://www.webforum.nu/p/2287915

## #5 — nitro2k01, 2011-11-01T01:37Z

I en grupp med tecken i en regex så har - (bindestreck) normalt en speciell betydelse, nämligen att definiera omfång av tecken, t ex a-z. Därför kan man inte placera - mitt i gruppen när man uttryckligen vill matcha det tecknet. Du måste placera dessa tecken först eller sist i gruppen. Alltså \[A-Za-z0-9\_-\] eller \[-A-Za-z0-9\_\]. Eventuellt kan det variera mellan Apache-versioner om den accepterar bindestreck i början eller slutet av gruppen. Om den ena ger fel, prova den andra.

Apache tolkar aldrig in querystringen till det som matchas av regexen. Fil-delen av URL'en och querystringen räknas som olika delar, och det är bara "filsökvägen" som matchas av regexen. Däremot rensas querystringen varje gång du har en regel som ändrar querystringens innehåll. Sättet runt detta är att lägga till \[QSA\] på slutet av de regler som gör detta. Då behålls den gamla querystringen.

```
RewriteEngine on
RewriteRule ^(home|about|contact)/?$ index.php?action=$1 [QSA]
RewriteRule ^(home|about|contact)/([-A-Za-z0-9_]+)/?$ index.php?action=$1&person=$2 [QSA]
RewriteRule ^(home|about|contact)/([-A-Za-z0-9_]+)/ID-([0-9]+)-([-A-Za-z0-9_]+)/?$ index.php?action=$1&person=$2&id=$3 [QSA]
```

Jag avmarkerade för övrigt det lösta svaret eftersom bävergudarna inte gillar trådar som med olösta frågor, som är markerade som lösta.

Permalänk: https://www.webforum.nu/p/2287916

## #6 — bassebhu, 2011-11-01T10:10Z

Burrigt! Funkade prima!  :birp

Permalänk: https://www.webforum.nu/p/2287922

---

Tråden på webben: https://www.webforum.nu/amne/webbservrar/188169-rewrite-som-funkar-för-både-katalog-och-katalog
