/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
strukturering af site
Fra : Anne Sandsgaard


Dato : 11-09-02 16:35

Hej. Dette er lidt svært at forklare, men jeg prøver alligevel:

Jeg har et lille site, der er bygget op således at jeg har en index.php, en
menu.php og en mappe, der hedder sider, hvori mine undersider ligger.

For at se en bestemt underside, skal man eks. benytte url'en:
http://mitsite.dk/index.php?url=underside1

index.php tager så underside1.php fra mappen 'sider' og sætter sammen med
menu.php.

Dette er jeg nu blevet træt af, da jeg synes det er pænere, hvis url'en
havde heddet
http://mitsite.dk/underside1/

Mit spørgsmål er: Hvordan gør jeg dette smartest?
Jeg vil gerne beholde alle siderne samlet i mappen 'sider', da det er
nemmest at holde styr på og det vil være fedt hvis man kunne lave en
index.php, som er ens i alle undermapper.

sider/underside1.php
sider/underside2.php
underside1/index.php
underside2/index.php
index.php
menu.php

Nogen, der har idéer/erfaringer/strøtanker/websider omhandlende dette, så
jeg kan blive klogere før jeg giver mig til at strukturere det hele om?

Venlig hilsen
Anne



 
 
Jakob Bock (11-09-2002)
Kommentar
Fra : Jakob Bock


Dato : 11-09-02 18:00

Hej Anne

Hvis ellers dit netsted ligger på en Apache-server, og du har mulighed for
at bruge .htaccess-filer, så er det dennes URL Rewriting Engine du skal
kigge på:

http://mirrors.sunsite.dk/apache/docs/mod/mod_rewrite.html

Det du gør, er at oprette en fil ved navn .htaccess i din root-mappe. Her
skriver du noget i stil med:

RewriteEngine On

RewriteRule ^([a-z1-9])/$ index.php?url=$1 [L]

Det der sker er følgende: Når en bruger requester f.eks.
http://mitsite.dk/underside1/ tester mod_rewrite, om "underside1/" matcher
det regulære udtryk "^([a-z1-9])/$". Gør den det, kaldes siden
"index.php?url=underside1". Med denne fremgangsmåde behøver du således slet
ikke ændre den bagved liggende struktur.


Venlig hilsen
Jakob


Anne Sandsgaard (11-09-2002)
Kommentar
Fra : Anne Sandsgaard


Dato : 11-09-02 21:25

Jakob Bock <jakobb@mail.tele.dk> wrote:
>
> Hvis ellers dit netsted ligger på en Apache-server, og du har
> mulighed for at bruge .htaccess-filer, så er det dennes URL Rewriting
> Engine du skal kigge på:

Tusind tak! Det må jeg straks undersøge nærmere

-Anne



Thomas Pilgaard Niel~ (11-09-2002)
Kommentar
Fra : Thomas Pilgaard Niel~


Dato : 11-09-02 21:25



> Det der sker er følgende: Når en bruger requester f.eks.
> http://mitsite.dk/underside1/ tester mod_rewrite, om "underside1/" matcher
> det regulære udtryk "^([a-z1-9])/$". Gør den det, kaldes siden
> "index.php?url=underside1". Med denne fremgangsmåde behøver du således slet
> ikke ændre den bagved liggende struktur.

Bare af nysgerrighed, virker det med flere variable i URL'en? Eks.

   index.php?side=forside&foo=bar

mvh - Thomas


Jakob Bock (12-09-2002)
Kommentar
Fra : Jakob Bock


Dato : 12-09-02 10:09

Thomas Pilgaard Nielsen skrev:

> Bare af nysgerrighed, virker det med flere variable i URL'en? Eks.
>
> index.php?side=forside&foo=bar

Ja, det kræver bare, at man skriver et regulært udtryk der matcher denne
streng.


Venlig hilsen
Jakob


Jesper Brunholm (12-09-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 12-09-02 08:07

Anne Sandsgaard wrote:
> For at se en bestemt underside, skal man eks. benytte url'en:
> http://mitsite.dk/index.php?url=underside1
[snip]
> Dette er jeg nu blevet træt af, da jeg synes det er pænere, hvis url'en
> havde heddet
> http://mitsite.dk/underside1/

Jeg har ikke prøvet den i andet svar omtalte mod_rewrite ( - jeg tror at
det er smart hvis man har adgang til det, hvilket jeg regner med ikke at
have - jeg har ikke adgang til ret meget i min .htaccess). Jeg er ikke
klar over om rewrite fysisk omskriver URL'en, så bliver den jo ikke ved
med at "se godt ud" (?)

Vi laver noget der ligner på flere af de projekter jeg er med i:

Vi har en central DocModel.php som sætter alle sider sammen afhængigt af
URL'en. Denne kaldes fra alle filer, med et standard-script (ens for
alle filer):

<?php
include($_SERVER['DOCUMENT_ROOT']."scripts/DocModel.php");
?>

Ulempen er at man skal _oprette_ alle filerne og bibliotekerne.

Jeg har som regel det _indhold_ som skal includes på siden liggende i
*.html-filer (fx: quiz.php får includet quiz.html), for at gøre det
overskueligt hvilken fil der har hvilket indhold, så kan jeg
automatisere min include() med en str_replace()-processering af PHP_SELF
*S*.

mvh

Jesper Brunholm

--
Phønix - dansk folk-musik fra unge musikere - http://www.phonixfolk.dk


Jakob Bock (12-09-2002)
Kommentar
Fra : Jakob Bock


Dato : 12-09-02 10:08

Jesper Brunholm skrev:

> Jeg er ikke
> klar over om rewrite fysisk omskriver URL'en, så bliver den jo ikke ved
> med at "se godt ud" (?)

Det gør den skam heller ikke -- medmindre du sender en redirect-header til
klienten. Det gør man ved at skrive f.eks. [R] efter rewrite-reglen.


Venlig hilsen
Jakob


Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste