Top
Phpuniverset logo
 

INDHOLD

Forside

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

PHP bog shop

Forum

Online udviklere


Propelcom

ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Mod rewrite eksempler

Forside Kategori PHP/MySQL Mod rewrite eksempler




 

I Venstres Ungdom har alle lokalforeninger en adresse som fx. http://vu.dk/odense/.

Til at styre det, skal der være en administratorside, hvor det skal være muligt, at oprette nye samt vedligeholde gamle adresser.

PHP kører som brugeren nobody, og har ikke rettigheder til at oprette biblioteker, eller ændre i dem. Man kunne selvfølgelig give brugeren de nødvendige rettigheder, men det er en lidt besværlig metode. Derfor ville jeg prøve at lave noget Rewrite kung-foo der, checkede om filen/biblioteket hente fandtes eller ej - gjorde den ikke kaldes der et script med det ønskede bibliotek/filnavn som argument. Løsningen var:

 
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/?$ /redir.php?forening=$1

Ovenstående checker om REQUEST_FILENAME findes eller ej, gør den ikke vises /redir.php?forening=odense - hvis man altså prøvede at henter http://vu.dk/odense/

Efterfølgende skal man så sørge for, at redir.php så sender videre til den rigtige adresse, og at den opfører sig rigtigt hvis lokalforeningen ikke findes.

På mbn.dk ville jeg gerne have mine sider til at virke statiske selv om de alle er dynamisk genereret. Det skulle også være muligt, at indele siderne i kategorier. Til formålet brugte jeg:
 
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/([^/]*)/?$ /?katid=$1&id=$2

Går man ind på http://mbn.dk/foo/bar/ vil Apache så vise http://mbn.dk/?katid=foo&id=bar. Med mindre at filen/biblioteket findes.

Jeg ville have at hvis en URL lignede http://host/abc/123/, så skulle Apache sende videre til /personer.php?person=abc&id=123, men kun hvis abc var med små bogstaver. De sidste tal var valgfri. Hvis abc indeholdte store bogstaver, skulle Apache sende videre til /index.php?type=Abc. Jeg brugte:
 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([a-z]+)/?([0-9]*)/?$ /personer.php?person=$1&id=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([a-z_]+)/?$ /index.php?type=$1 [NC]

Jeg var lidt træt af, at forskellige søgemaskiner indeholdte en masse gengangere af mine sider fordi de havde fundet underdomæner til mbn.dk, der alle pegede på mbn.dk. Fx. var www.mbn.dk, ww.mbn.dk og mbn.dk det samme, men alligevel blev de vist som tre selvstændige sider i Google… jeg smed nedenstående ind i min .htaccess, og nu er det kun mbn.dk der virker.
 
RewriteEngine On
RewriteCond %{HTTP_HOST} !^mbn.dk$
RewriteRule ^(.*) http://mbn.dk/$1 [L,R=301]

Nogle editorer opretter en backup af filen man lige har gemt. Sidder man og redigerer sider direkte på serveren kan det bevirker, at hvis man gemmer filen hemmelig.php, så opretter editoren en fil ved navn hemmelig.php~ der ikke vil blive fortolket som værende PHP. For at nægte folk adgang til filer der ender på ~, kan følgende bruges:
 
RewriteEngine On
RewriteRule ^.*~$ - [F]

Til smartlog.dk havde jeg brug for at sende whatever.smartlog.dk videre til /home/smartlog/blog_files/?host=whatever. Det gjorde jeg på følgende måde:
 
RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www.)?smartlog.dk$
RewriteCond %{HTTP_HOST} ^(www.)?[^.]+.smartlog.dk$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^(www.)?([^.]+).smartlog.dk /home/smartlog/blog_files/?host=$2


Skrevet af Morten Blinksbjerg Nielsen



Skrevet af: Phpuniverset | Dato : 2006-07-13 17:3 | Læst : 7155 gange | Print

Din kommentar og karakter til artiklen

Din karakter:

1

2

3

4

5

6

7

8

9

10

Kommentar:

Log ind for at give en karakter og kommentar.

Kommentarer og karakterer til artiklen

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

FORUM

Nyeste forum indlæg :

PHP/Opencart import module

Opencart/php import modul hjælp

Lækkert kontor / kontorfællesskab i Helsingør

Opdatering af PHP

Vurdering af hjemmeside

Nyeste forum svar :

Joomla som CMS

Android programmering

Grafik problemer

Prissammenligningsside

Jeg yder fremover ikke support!

 

MEDLEM

LOGIN ER IKKE MULIGT, MENS VI LAVER NYT SITE
 

NYHEDSBREV

Nyhedsbrev

Tilmeld dig vores nyhedsbrev og modtag nyheder om nye scripts og tips samt om mange andre nye tiltag på Phpuniverset.dk


 

© Copyright 2000 Propelcom Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk - android talk & help

Bund