@codenerd på twitter Mit seneste tweet:

Nyttige mod_rewrite eksempler

Her er en række rewrites til mod_rewrite som er rare at ha’ i baghånden.

Dette er ikke en tutorial, så de dybtegående forklaringer vil der være langt imellem. Eksemplerne i dette blogindlæg er rewrite regler som jeg ofte har brugt selv, og tænkte de kunne være til hjælp for andre.

Hvis du er ny i mod_rewrite regi vil jeg anbefale at tage et hurtigt kig på min gamle tutorial: Mod_reqrite.



Send side1.html til side2.html

PHP
1
2
3
4
# simpel redirect
# redirecter side1.html til side2.html
RewriteEngine on
RewriteRule ^side1.html$ side2.html

Pæne URLS

PHP
1
2
3
4
# simple pæne urls - et niveau
# Redirecter fx /side1 til index.php?side=side1
RewriteEngine On
RewriteRule ^([^/.]+)/?$ index.php?side=$1 [L]

Pæne URLS

PHP
1
2
3
4
# simple pæne urls - to niveauer</p>
# Redirecter fx /side1/underside1 til index.php?side=side1&amp;underside=underside1
RewriteEngine On
RewriteRule ^([^/.]+)/([^/.]+)/?$ index.php?side=$1&amp;underside=$2 [L]

Flyt domæne – rewrite til andet domæne

PHP
1
2
3
4
5
# domain redirect
# Redirecter alt fra domæne1.dk til domæne2.dk inkl querystrings </p>
RewriteEngine On
RewriteCond %{http_host} ^domæne1.dk$ [NC]
RewriteRule ^(.*) http://domæne2.dk/$1 [R=301,QSA,L]

Skift fra .ASP til .PHP – med samme filnavne

PHP
1
2
3
4
# skift fra asp til .php filnavne
# redirecter alle kald til .asp filer til samme fil med .php
RewriteEngine On
RewriteRule ^(.+.)asp$ /$1php [R=301,L]

Stop folk der hotlinker dine billeder

Nb. Dette kan let omgåes ved at sende en blank Referer, men det kan stoppe en del tyveri.

PHP
1
2
3
4
5
6
# anti-hotlink
# blokkere alle som har en anden henvisende side end din egen
RewriteEngine On
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://www.domæne.dk [NC]
RewriteRule .(jpe?g|gif|png|bmp)$ - [F]

Rewrite ikke rigtige filer eller mapper

PHP
1
2
3
4
5
6
#stop rewrite af rigtige filer og mapper
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
#indsæt din rewriterule her

Blokker adgang ud fra tid

PHP
1
2
3
4
#blokker adgang ud fra tid
#blokkere adgang til site kl 15
RewriteEngine On RewriteCond %{TIME_HOUR} ^15$
RewriteRule ^.*$ - [F,L]

Som sagt er der ikke tale om en tutorial her, dette er simpelthen bare nogle af de Rewrites jeg ofte selv bruger, som jeg tænkte jeg ville dele.

7 kommentarer

  1. Skrevet af John  d. 02/08/2009 kl 20:09

    Super eksempler,

    Jeg har et spørgsmål til dette eksempel:
    # anti-hotlink
    # blokkere alle som har en anden henvisende side end din egen
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} .
    RewriteCond %{HTTP_REFERER} !^http://www.domæne.dk [NC]
    RewriteRule .(jpe?g|gif|png|bmp)$ – [F]

    Istedet for fejlsiden der kommer frem, kan man så ikke vise et billede man selv vælger, eller sende brugerne videre til en anden side?

    Svar på kommentaren
  2. @John du kan sagtens erstatte billedet med et stop hotlinking, fx:

    
    # anti-hotlink 
    # blokkere alle som har en anden henvisende side end din egen 
    RewriteEngine On 
    RewriteCond %{HTTP_REFERER} . 
    RewriteCond %{HTTP_REFERER} !^http://www.domæne.dk [NC] 
    RewriteRule .(jpe?g|gif|png|bmp)$ hotlinking.png [L,NC]
    

    Så vil hotlinking.png blive vidst på brugerens side

    Svar på kommentaren

Leave a Reply to Claus Cancel reply

Krævede felter er markeret med *.

*