Permalänk
Medlem

Hjälp med en RewriteRule

Hej, jag har ett problem med en RewriteRule i apache.

Jag skulle vilja att den här sortens adress:

http://www.example.com/nagonting_annat/har/

Rewriteas till

http://www.example.com/index.php/nagonting_annat/har/

Det borde ju vara väldigt simpelt, men jag har inte fått det att funka.

nagonting_annat och har kan vara små bokstäver, siffror och underscore.

Vet någon hur jag bör göra?

Visa signatur

Mina boktips: Clean codeHead First Design PatternsHead First Object-oriented Analysis and Design
Innovation distinguishes between a leader and a follower. — Steve Jobs

Permalänk
Medlem

RewriteRule ^/(.*) /index.php/$1

Visa signatur
Permalänk
Medlem

Fredo, det där ser ut som man kommer hamna i en loop. Orkar inte testa, men om det är så kan man nog komma runt det med nån flagga eller så.

Permalänk
Hedersmedlem

Om det blir en loop, prova:

RewriteRule ^/(.*) /index.php/$1 [L]

L:et står för "last rule".

Du skulle också kunna förfina syntaxen lite för att förhindra eventuella loopar. T.ex:

RewriteRule ^/([a-z0-9_]*)/([a-z0-9_]*) /index.php/$1/$2 [L]

Byt ut [L] mot [L,NC] om du vill tillåta stora bokstäver.

Permalänk
Medlem

Men är inte ^ början av adressen?

Edit: Bortse från detta inlägg.

Edit #2: RewriteRule ^/(?!index.php)(.*) /index.php/$1 kanske är bäst?

Visa signatur