Avatar billede snigeren Nybegynder
08. marts 2011 - 13:34 Der er 10 kommentarer og
1 løsning

Pretty URLs og .htaccess

Jeg har læst lidt på regex og mod_rewrite men synes ikke helt jeg kan finde ud af hvordan det hænger sammen...

Pt. er det en helt simpel hjemmeside med fire sider i alt: index.php(forside), kompetencer.php, samarbejdspartnere.php og kontakt.php

Har ikke brug for en stor backend så derfor har jeg valgt bare at lave 4 statiske sider pt. Der er nogle includes og lidt i siderne så derfor kalder jeg dem .php og ikke .html

Kort sagt skal de bare vises som domæne.dk, domæne.dk/kompetencer, domæne.dk/samarbejdspartnere og domæne.dk/kontakt
Nok knap så vigtigt når der ikke er en masse parametre bagefter som med større querys,.. men vil gerne lige have fjernet .php og forhåbentlig fatte måden at gøre det på så jeg selv kan lave mere komplekse systemer senere.. :)
Avatar billede Slettet bruger
12. marts 2011 - 19:06 #1
Hey,

Det er simpelt gjort med .htaccess. Lav en fil der hedder ".htaccess" og smid den ned i din webroot (den "øverste" mappe som du kan uploade til) og skriv i denne:


# Slår RewriteEngine til
RewriteEngine On

# Tjekker om det er en fil der bliver requested
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l

# Hvis det ikke er det, så skal den rewrite til URI'en + .php
RewriteRule (.*) $1.php
Avatar billede snigeren Nybegynder
13. marts 2011 - 15:57 #2
hey

ok ja det er godt nok simpelt :)

der er en .htaccess med følgende indhold er det noget der skal bruges til noget?:

RewriteEngine On

RewriteCond %{HTTP_REFERER} .*google.* [OR]

RewriteCond %{HTTP_REFERER} .*ask.* [OR]

RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]

RewriteCond %{HTTP_REFERER} .*baidu.* [OR]

RewriteCond %{HTTP_REFERER} .*youtube.* [OR]

RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]

RewriteCond %{HTTP_REFERER} .*qq.* [OR]

RewriteCond %{HTTP_REFERER} .*excite.* [OR]

RewriteCond %{HTTP_REFERER} .*altavista.* [OR]

RewriteCond %{HTTP_REFERER} .*msn.* [OR]

RewriteCond %{HTTP_REFERER} .*netscape.* [OR]

RewriteCond %{HTTP_REFERER} .*aol.* [OR]

RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]

RewriteCond %{HTTP_REFERER} .*goto.* [OR]

RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]

RewriteCond %{HTTP_REFERER} .*mamma.* [OR]

RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]

RewriteCond %{HTTP_REFERER} .*lycos.* [OR]

RewriteCond %{HTTP_REFERER} .*search.* [OR]

RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]

RewriteCond %{HTTP_REFERER} .*bing.* [OR]

RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]

RewriteCond %{HTTP_REFERER} .*facebook.* [OR]

RewriteCond %{HTTP_REFERER} .*twitter.* [OR]

RewriteCond %{HTTP_REFERER} .*blog.* [OR]

RewriteCond %{HTTP_REFERER} .*live.* [OR]

RewriteCond %{HTTP_REFERER} .*myspace.* [OR]

RewriteCond %{HTTP_REFERER} .*mail.* [OR]

RewriteCond %{HTTP_REFERER} .*yandex.* [OR]

RewriteCond %{HTTP_REFERER} .*rambler.* [OR]

RewriteCond %{HTTP_REFERER} .*ya.* [OR]

RewriteCond %{HTTP_REFERER} .*aport.* [OR]

RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]

RewriteCond %{HTTP_REFERER} .*flickr.*

RewriteRule ^(.*)$ http://www.72rq.co.cc/ [QSA,L]
Avatar billede Slettet bruger
13. marts 2011 - 16:21 #3
Umiddelbart kan jeg ikke se hvad du skal bruge den til. Tag en backup af den til din computer, og så upload din nye .htaccess-fil. ;-)
Avatar billede snigeren Nybegynder
13. marts 2011 - 17:39 #4
hmm når jeg trykker på et menupunkt eks. <a href="kompetencer">KOMPETENCER</a>  får jeg 404 fejl.. =(

Er linket ikke rigtig nok skrevet? Har også prøvet <a href="/kompetencer">KOMPETENCER</a> men ingen forskel linket til index.php hedder bare <a href="/">FORSIDE</a> og det virker fint.
Avatar billede Slettet bruger
13. marts 2011 - 17:44 #5
Ja, det er korrekt. Hmm... altså du har en mappe, hvor du har:

/.htaccess <- Med den kode jeg skrev til dig
/kompetencer.php
/index.php

Eller hvad? Det burde nemlig virke. Hvem hoster din hjemmeside? Det kan være du ikke har "adgang" til at bruge mod_rewrite! Det tyder lidt sådan.
Avatar billede snigeren Nybegynder
13. marts 2011 - 18:34 #6
ahh hehe flot nok,.. havde forstået det som om jeg skulle lægge .htaccess helt ude i roden af min server

www
.htaccess

i www mappen har jeg så nogle domæner,.. men det virker fint når jeg smider den ind i www/domæne/  :) tak for hjælpen smid et svar :)
Avatar billede Slettet bruger
13. marts 2011 - 18:43 #7
Super duper. Godt du fandt løsningen. Pøj pøj med din side!
Avatar billede snigeren Nybegynder
13. marts 2011 - 22:19 #8
thx =)

Lige en lille ting mere, hvis jeg nu gerne vil have en / efter min rewrite hvordan gør jeg så det?

Lige bliver det:
domæne.dk/kompetencer

men hvis jeg gerne vil have:
domæne.dk/kompetencer/

og er der noget ud over det visuelle i at smide en / efter?

Jeg tænkte egentlig (.*) tog alle tegn men det er måske ikke / ?
Avatar billede Slettet bruger
13. marts 2011 - 22:42 #9
Der er intet udover det visuelle. Med denne kan du både komme på via /kompetencer, /kompetencer/, /kompetencer.php og /kompetencer.php/... det burde være nok:



RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ([^/]+)/? $1.php
Avatar billede snigeren Nybegynder
13. marts 2011 - 23:29 #10
uhm den skifter godt nok til kompetencer/ men det ser så også ud som om den hopper ind i en undermappe lidt lige som kompetencer/index.php

den kan ikke finde vej til billeder og css :P
Avatar billede snigeren Nybegynder
15. marts 2011 - 18:00 #11
Skal man lave om på stien til css og gfx?
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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