Avatar billede webweaver Praktikant
16. december 2013 - 02:10 Der er 10 kommentarer og
1 løsning

Rewrite rules

Hejsa,

Kort og godt. Jeg benytter rewriterule m.v. for at gøre URL adresser pænere og "SEO-dygtige".

Eksempelvis kan det være:

RewriteRule Garanti garanti.php

Mit problem er, at man både kan tilgå siden garanti.php via URL domæne.dk/Garanti og domæne.dk/garanti.php. To veje til undersiden er ikke nødvendigt og giver måske bare rod hos søgemaskinerne og dårligere SEO.

Hvordan "spærrer" jeg adgang via den direkte sti domæne.dk/garanti.php? Eller snarere redirecter den, så den går fra domæne.dk/garanti.php til domæne.dk/Garanti i den synlige adresse i browseren?

Anser I det overhovedet som nødvendigt/smart? Jeg synes bare det virker forkert, at man stadig kan tilgå siden via .php stien, når man har valgt at bruge rewriterule.

Samme problematik har jeg med forsiden.
Mange servere er default sat til at redirecte til index.php (eller lign.), selvom man bare går ind på domæne.dk.

I stedet for index.php har jeg brugt rewriterule, så jeg tilgår forsiden via domæne.dk/Forsiden

Her kunne jeg også godt tænke mig, at domæne.dk/index.php eller bare domæne.dk ændres til domæne.dk/Forsiden, så søgemaskinerne ikke anser det som dobbelt indhold, som kan trække ned i SEO.

Jeg er dog ikke den stærkeste i Regex eller rewriting, så lidt hjælp vil være lækkert.
Avatar billede Slater Ekspert
16. december 2013 - 08:41 #1
Det er helt unødvendigt så længe du aldrig linker til .php-siderne. En søgemaskine vil aldrig opdage at en side eksisterer, hvis der ikke findes et link til den et eller andet sted, da den ikke bare afprøver tilfældige filnavne fra en ende.

Men hvis du vil blokere adgang til .php-filer, kan du f.eks. tilføje noget lignende dette:

RewriteRule (\.php)$ - [F,L,NC]

- Hvis du vel at mærke bruger Apache .htaccess eller et lignende format.
Avatar billede johny Nybegynder
16. december 2013 - 09:31 #2
Du bør ikke løse det med redirects men med Canonical rel. Så slipper du for redirects, og du tager ingen hug i SEO (hvilket du faktisk kan risikere selv med 301 redirects).

Se f.eks. her for mere info: https://support.google.com/webmasters/answer/139394?hl=en
Avatar billede webweaver Praktikant
16. december 2013 - 13:33 #3
#2 Ideen med det er smart nok. Men vil problemet her ikke være, at der rent fysisk kun er ét dokument. Der er jo ikke to filer. Der er kun garanti.php. Domæne.dk/Garanti peger jo bare på garanti.php internt.

Hvis der var to filer, kan jeg se, hvorfor man bør indsætte koden i headeren. Når der nu kun er een, så er det svært at indsætte, da det så vil være til stede i filen altid, ligemeget hvilken sti man bruger.
Avatar billede webweaver Praktikant
16. december 2013 - 13:39 #4
#1 Nej måske ikke. Men man har jo aldrig rigtig kontrol over, hvem som evt. kunne finde på at linke til ens hjemmeside eller underside derude :-)

Desuden tænker jeg vel, at søgemaskiner jo crawler nettet derude dagligt, og den måske godt kan finde, hvad der måtte ligge i roden af et tilgængeligt bibliotek - også selvom det ikke fremgår via links på hjemmsiden.

Jeg vil lige prøve koden du har postet.

Er der nogen ulempe ved at benægte adgang via den direkte sti til PHP filen?

Det er Apache og .htaccess jeg sidder med :-)
Avatar billede Slater Ekspert
16. december 2013 - 14:06 #5
Johnys forslag er fornuftigt, og du kan sagtens bruge det.
Det gør netop ikke noget at der kommer samme kode på begge filer, da det sådan set er meningen.

Hvis du vil have at example.com/side1 er korrekt og example.com/side1.php ikke er, så skriver du

<link rel="canonical" href="http://www.example.com/side1">

i filen, som så kommer frem begge steder - og så er side1 altså den kanoniske sti.

Men der er heller ikke noget problem i bare at forhindre adgang til .php. Med mindre altså, at du nogle gange gerne vil bruge php-filer med fuld sti, for så skal du naturligvis ændre den kode så den kun udelukker nogle filer.
Avatar billede webweaver Praktikant
16. december 2013 - 14:59 #6
viperine din kode virker fint. Dog henviser den jo til en 403. Jeg ikke har lavet min egen 404 og 403 på denne side, hvorfor det er en lidt kedelig side at få frem. Jeg har derfor lavet det om til et redirect alligevel, hvor den laver domæne.dk/garanti.php om til domæne.php/Garanti og ligeledes med alle andre filer der er på siden...

Jeg begynder at forstå ideen med canonical rel, men da jeg benytter ovenstående vil der vel ikke være den store idé med at påføre det i filerne? Det kan man selvfølgelig stadig gøre, hvis der skulle være et smuthul et sted og man kan komme ind vi to stier til det samme sted, men det er vidst at sætte overlæggeren lidt højt? :-)
Avatar billede webweaver Praktikant
16. december 2013 - 15:01 #7
Btw Johny, du mener godt, at redirect via mod rewrite alligevel kan tolkes skidt ift. SEO af søgemaskinerne?
Avatar billede johny Nybegynder
16. december 2013 - 15:24 #8
Det med at tolkes "skidt", går ud på, at du mister værdien af link tekst der linker til en side der redirectes videre. Men har der aldrig været et eksternt link til siden før der slutter på .php, så er 301 redirect den "rigtige" løsning (da du så slipper for at nogen henviser til din side med ".php" uden at det koster dig noget).
Avatar billede webweaver Praktikant
22. december 2013 - 20:29 #9
Yes okay på den måde.

Jeg har i hvert fald fået lavet en løsning på det nu som tidligere nævnt.

I kan begge smide et svar, så vi kan få lukket tråden :-)
Avatar billede Slater Ekspert
22. december 2013 - 21:00 #10
S'gerne.
Avatar billede johny Nybegynder
27. december 2013 - 18:52 #11
Glad for at du kunne bruge input. Fortsat god vind med projektet. :)
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
Kurser inden for grundlæggende programmering

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