Avatar billede cronck Nybegynder
28. maj 2010 - 13:49 Der er 5 kommentarer og
1 løsning

Apache, mod_rewrite

Hejsa,

Jeg har valgt at oprette den under Script -> PHP, da Programmer -> Generelt virker en smule for bredt. De fleste PHP-folk kender jo til Apache anyways :)

Jeg har gennem tiden forsøgt at forstå mod_rewrite så jeg kan lave mine egne regler - Det er endnu aldrig lykkedes helt.
Det er efterhånden blevet opgivet lidt herfra.

Er det muligt at gøre så at alle kald bliver parset til index.php?arg=xxx , medmindre URL'en indeholder et punktum, som for eks. links til billeder og stylesheets?

Hvis man kan det, tror jeg at det i mit tilfælde vil være nemmere at splitte strenge som for eks. "/test/124823/view" og arbejde med dem i et array. :)
Avatar billede showsource Seniormester
28. maj 2010 - 14:23 #1
Personligt vil jeg aldrig bruge "alle" til en mod_rewrite

Flg. vil sende request til index.php hvis det ikke er en fil eller et dir:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9]+)(/)?$ /index.php?id=$1

Det er jo så "A-Za-z0-9" som bestemmer tegn der anvendes.

(/)? medtager en evt. / som afslutning på request.

En udemærket guide til mod_rewrite:
http://forums.devshed.com/apache-development-15/mod-rewrite-guide-common-requests-267522.html
Avatar billede cronck Nybegynder
28. maj 2010 - 14:44 #2
Kan du uddybe hvorfor du ikke synes om det? :)

Umiddelbart har jeg igennem tiden haft en del bøvl med at lave så det virker både med 1, 2, 3, og 4 "argumenter", hvor den så pludselig kun vil acceptere det hvis URL'en er sluttet af med en / ..hvilket lidt ødelægger det brugervenlige i det.
Avatar billede showsource Seniormester
28. maj 2010 - 14:47 #3
Jeg er ikke til specialtegn i url.

x-antal vars er der et ex. på, i det link til forums.devshed.com
Avatar billede cronck Nybegynder
14. juli 2010 - 11:21 #4
Jeg fik det i øvrigt til at virke, men glemte alt om at poste herinde bagefter. :)

Du må meget gerne smide et svar
Avatar billede showsource Seniormester
15. juli 2010 - 05:27 #5
Ok.
Og en go' ting her på siden, er at poste den løsning man kom frem til.
Avatar billede cronck Nybegynder
15. juli 2010 - 09:07 #6
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(img|css|style)/?.*$
RewriteRule ^(.+) - [L]
RewriteRule ^([A-Za-z0-9_]+)/?$ index.php?arg1=$1 [T=application/x-httpd-php,L]
RewriteRule ^([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/?$ index.php?arg1=$1&arg2=$2 [T=application/x-httpd-php,L]
RewriteRule ^([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/?$ index.php?arg1=$1&arg2=$2&arg3=$3 [T=application/x-httpd-php,L]
RewriteRule ^([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/?$ index.php?arg1=$1&arg2=$2&arg3=$3&arg4=$4 [T=application/x-httpd-php,L]

Tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester