“If-sætninger” i Apaches mod_rewrite

December 11, 2009 · Posted in Udvikling 

Når jeg udvikler gør jeg det typisk på min egen maskine, og så via SVN synkroniserer jeg med live-serveren. Det gi’r tit nogle problemer med rewrite-regler, da de typisk vil være anderledes fra localhost til den endelige server.

Min løsning på det er Skip-flaget der fortæller Apache hvor mange regler den skal springe over.

Nedenstående eksempel springer én regel over hvis man sidder på localhost.

1
2
3
4
5
6
7
8
9
10
11
12
RewriteEngine on
 
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule .* - [S=1]
 
# Bliver ikke kørt på localhost
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^(.*) http://www.example.com/$1 [L,R=301]
 
# Bliver kørt på alle sites
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+-([0-9]+)$ item/view/$1 [QSA]

Se mere i manualen for mod_rewrite.

Comments

2 Responses to ““If-sætninger” i Apaches mod_rewrite”

  1. Peter on December 11th, 2009 1:41 pm

    Smaaaaaaaaaaaaaaaaaaaaart :D

  2. Morten Blinksbjerg Nielsen on December 11th, 2009 3:42 pm

    Tak tak :)

Leave a Reply





  • Om websmed.dk

    Jeg hedder Morten, og jeg har udviklet webapplikationer siden slutningen af 90'erne.

    Jeg vil her dele ud af min erfaring, og med jævne mellemrum poste nogle tips og tricks, samt løsningsforslag på generelle dagligdags problemstillinger.

    Jeg har en forkærlighed for PHP og MySQL, hvorfor I nok vil se flest indlæg der vedrører den gren af webudvikling.

    Jeg har en anden blog af mere personlig karakter på mbn.dk, hvor I kan finde kontaktmuligheder m.m.

    Mine indlæg vil tit være baseret på problemstillinger i mit daglige virke, eller i mit eget firma MRLYTICS, hvor jeg sælger kundeundersøgelser samt kundedatabaser.

    Denne side er hostet hos slicehost.

  • Skrevet på Twitter