Skift url navn med .htaccess

Tags:    htaccess apache webdesign mod-rewrite

<< < 12 > >>
Jeg har høret noget om at man kan lave en sin url lidt meget pænere f.eks
lige som her; udvikleren.dk/forum/ny-traad/


Det er bare fordi jeg er snart blive træt af kigge på http://.....dk/?s=profil&id=1 Det er sådan lidt øhmm

Hvordan laver jeg sådan noget?

Håber du kan hjælp mig




19 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Tjek evt. denne side, den er endda på dansk: http://www.phpartikler.dk/artikler/htaccess.php



Dette er hvad jeg husker ud af hoved, så det er mere et eksempel:
først skal du sørge for at det er aktiveret i din apache httpd.conf
Fold kodeboks ind/udKode 


også en htaccess fil i roden af serveren:
Fold kodeboks ind/udKode 


nu skulle du gerne kunne bruge: http://www.example.com/profil/1/

(det er ikke gennem testet)



Indlæg senest redigeret d. 01.05.2011 21:01 af Bruger #16218
Her er et eksempel. Følgende indhold skal placeres i en fil ved navn .htaccess i roden af dit website:

Fold kodeboks ind/udKode 


Den vil matche URL's ala den her:

http://www.site.dk/profiler/42/

Og vise filen profile.php med en id parameter sat til det tal der nu står i adressen, i det her tilfælde 42.

I en del tilfælde vil man gerne have noget tekst på adressen også, fx brugerens navn. Her skal man først og fremmest huske på at det ikke er alle tegn der er gyldige i en URL, så dem skal man sortere fra før man linker til brugeren. Man skal også huske på at med mindre brugerens navn er unikt, så bør man have en unik identifier med i adressen, typisk brugerens ID. Det vælger man i øvrigt tit at gøre ligemeget hvad, da det er betydeligt lettere at slå et tal op i databasen fremfor en tekststreng der har været igennem en eller anden metode der laver den om til noget der er gyldigt i en URL :). Her er et eksempel:

Fold kodeboks ind/udKode 


Ovenstående eksempel fanger en URL ala den her:

http://www.site.dk/profiler/42/kasper/

Jeg har valgt at mine usernames kun må indeholde bogstaver, tal og bindestreger. I praksis vil man nok udvide det regulære udtryk til at matche lidt flere ting eller evt. negate det, så den matcher alt andet end nogle givne tegn. Det kommer lidt an på situationen, samt smag og behag.

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 01.05.2011 21:12 af Bruger #1
Du kan vist nok benytte noget med 'url rewrite', men ved ikke helt hvordan det fungere. Du kan evt. prøve at lave et search på det på google



Nu tænkt jeg også bare på at det ikke kun blive profil siden, men så det også blive de andre sider som nyheder og info og osv.. ;) ? hvordan gøre jeg det med dem?



>Nu tænkt jeg også bare på at det ikke kun blive profil siden, men så det også blive de andre sider som nyheder og info og osv.. ? hvordan gøre jeg det med dem?

På præcis samme måde, med et antal regler der mapper dine virtuelle adresser over til rigtige filer. Om du skal have en regel pr. side eller om du kan nøjes med nogle mere generelle regler, kommer an på din struktur og opsætning. Her er et simpelt eksempel med en regel pr. side:

Fold kodeboks ind/udKode 


Du kan også lave et lidt mere generelt approach, hvis din struktur ellers er til det:

Fold kodeboks ind/udKode 


Ovenstående tager URL's som dem her:

http://www.site.dk/info/nyheder/
http://www.site.dk/info/brugere/
http://www.site.dk/info/produkter/

Og laver dem om til kald til info.php med det sidste ord som parameter, altså:

info.php?p=nyheder
info.php?p=brugere
info.php?p=produkter

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 01.05.2011 21:20 af Bruger #1
På samme måde, bare med andre filnavne op url navne... xD



Så jeg skal bare skrive sådan her ;)


RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^nyheder/?$ /nyheder.php
RewriteRule ^info/?$ /info.php
RewriteRule ^album/?$ /album.php
RewriteRule ^bruger/?$ /bruger.php
RewriteRule ^chat/?$ /chat.php
RewriteRule ^indbakke/?$ /indbakke.php


osv?? eller hvad?




>Så jeg skal bare skrive sådan her

Ja i princippet - ellers så se det eksempel jeg har postet lidt længere oppe, for en anden måde der kræver færre regler. Det kommer meget an på din struktur.

Mvh.

Kasper (TSW)



ja, og hvis du skal have tal på nyheder, brugere osv.
Fold kodeboks ind/udKode 

sådan cirkus, og det virker



Indlæg senest redigeret d. 01.05.2011 21:31 af Bruger #16218
<< < 12 > >>
t