Kortere URL

Tags:    htaccess

Hvis nu jeg har en adresse der hedder :
http://www.abekattemisser.dk/mappemedfiler/forsiden.php

Også jeg syntes den URL er unødig lang og hellere ville have :
http://www.abekattemisser.dk/forsiden.php

Men altså på serveren der ligger filen stadig i :
/mappemedfiler/forsiden.php

Hvordan gør jeg så det på den bedste måde ?
Og der ligger jo robots.txt og andre filer i roden som stadig skal virke.
http://www.abekattemisser.dk/robots.txt skal ikke pege til mappemedfiler mappen.



10 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Altså, jeg er begyndt at lave en mappestruktur lidt hen af Wordpress stilen.

---
Fold kodeboks ind/udKode 

---

Ihvertfald noget i den stil. Så kan man, hvis man vil gøre det således, skifte design på sin hjemmeside og så bare skrive html'en om i designet istedet for at rette i en hel masse. Jeg blev inspireret af idéen med MasterPage i .NET.

header.php, footer.php bruges til at opretholde designets html. Eksempelvis:

header.php
Fold kodeboks ind/udPHP kode 


footer.php
Fold kodeboks ind/udPHP kode 


load.php bruges så til at "loade" den valgte fil i temaet, ud fra et "alias" i url'en.

Som standard vil din index.php fil (i roden) se således ud:
index.php?alias=ommig
index.php?alias=kontakt

Og den omskriver du bare med dit mod_rewrite
Fold kodeboks ind/udKode 


Dine forskellige filer i temaet vil så se således ud (undtagen header.php og footer.php):

hjem.php, index.php?alias=, /
Fold kodeboks ind/udPHP kode 


ommig.php, index.php?alias=about, /about
Fold kodeboks ind/udPHP kode 


kontakt.php, index.php?alias=contact, /contact
Fold kodeboks ind/udPHP kode 


get_header, get_footer fremkommer af enkelte funktioner i functions.php. Eksempelvis:

Fold kodeboks ind/udPHP kode 


Database struktur

Fold kodeboks ind/udKode 


Det er ret simpelt :-)



Indlæg senest redigeret d. 02.01.2013 11:06 af Bruger #16025
Er det ikke bare noget i stil med:
Fold kodeboks ind/udKode 


koden er ikke testet




Fold kodeboks ind/udKode 



Nej det dur ikke. Heller ikke med mellemrum før ^.

Hvordan er jeres mappe/fil struktur ?

I har vel ikke en masse filer til at ligge i roden så i bare kan skrive minside.dk/forsiden.php ?



Indlæg senest redigeret d. 29.12.2012 16:58 af Bruger #13010
du kan gøre det med din .htaccess

Fold kodeboks ind/udKode 


Hvis du fortrækker at gøre det i php kan du skrive følgende i din .htacces fil

Fold kodeboks ind/udKode 


Hvis du så går ind på f.eks domain.dk/test/123/ kan du i din index fil styre hvad der skal ske

Fold kodeboks ind/udPHP kode 




du kan gøre det med din .htaccess

Fold kodeboks ind/udKode 



Så skal jeg skrive en RewriteRule per fil jeg har ?
Og hver gang jeg opretter en ny fil skal jeg huske og tilføje endnu en RewriteRule.
For ikke at tænke på når jeg vil skrife filnavn på nogen af filerne.
Det er ikke så smart.

Også hvad med robots.txt som ligger i roden den skal jo ikke sendes til index.php.



Fold kodeboks ind/udKode 


Kunne du så ikke bare gøre sådan?



Indlæg senest redigeret d. 06.01.2013 16:40 af Bruger #16025
En anden (meget brugt) tilgang til dette problem er at fange alle requests i .htaccess og redirecte det til index.php, der så selv sørger for routingen. Så kan du bygge mere eller mindre komplekse rewrite-regler i PHP og evt. benytte en database til at slå routingen op.



Fold kodeboks ind/udKode 


Kunne du så ikke bare gøre sådan?


Giver "500 Internal Server Error".

Hvad er der i vejen med denne linie som også giver fejl 500 ?
Fold kodeboks ind/udKode 


Hvis nu jeg bruger PHP til at viderestille så blive alle filer vil lidt langsommere gør de ikke hvis hver fil skal checkes ?



Indlæg senest redigeret d. 06.01.2013 17:37 af Bruger #13010
scootergrisen:

Det kommer an på hvor avanceret din logik er. Fx kunne du lade være med at redirecte statiske filer (som fomentligt alle bor i /static eller lign.), og kun route filer du ved er eller kan være dynamiske.

Det er hvad nærmest alle de store PHP baserede CMS systemer benytter.



Indlæg senest redigeret d. 06.01.2013 23:12 af Bruger #11328
Lad os sige jeg vil gøre det med PHP.

Men at det kun skal gælde for de .php filer jeg har i /netkoder/ mappen.
Hvordan gør jeg så det ?



t