Avatar billede sebster Nybegynder
09. marts 2010 - 11:09 Der er 21 kommentarer og
1 løsning

Hvordan ser søgemaskinerne på omskrivning af url? Og hvad er bedst?

Hej Eksperter,

Jeg sidder og skal til at lave en ny hjemmeside, og vil gerne optimere 100%. Derfor har jeg hørt at der er en del som bruger url-omskrivninger? Hvordan fungere det og hvad er bedst mht. optimering på søgemaskinerne?
Avatar billede repox Seniormester
09. marts 2010 - 11:20 #1
Se på Google egne anbefalinger:
http://googlewebmastercentral.blogspot.com/2009/08/optimize-your-crawling-indexing.html

Et kort resume af det der bliver skrevet og er aktuelt er at jo mere statisk URL'en er, jo bedre.

Om du skriver
http://example.org/readarticle.php?categoryId=3&articleId=345

eller
http://example.org/readarticle/3/345

eller
http://example.org/readarticle/Site-News/New-Hosting-Plan

er dybt ligegyldigt for Googlebot.

Problemet kommer først når du har dynamiske data med i dine URL'er. Brugerid, farveskemaer, sorteringsvalg og så'n noget...
Avatar billede sebster Nybegynder
09. marts 2010 - 11:29 #2
Okay.

Hvordan omskriver man til sin url til:

http://example.org/readarticle/Site-News/New-Hosting-Plan

pt står den således:

http://example.org/?site=readarticle&article=Site-News&comment=New-Hosting-Plan

Er ikke med på hvordan man går det smartest?

Vil meget gerne have breadcrumbs der står lige som i det sidste eksempel du giver!
Avatar billede repox Seniormester
09. marts 2010 - 11:50 #3
Det gør du med mod_rewrite modulet til Apache.
Det er et relativt stort emne, men du kan starte her:
http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/
Avatar billede sebster Nybegynder
09. marts 2010 - 15:11 #4
ja det kan jeg godt se er en større omgang!

Først og fremmest så bruger jeg index.php som min hovedside.

fx hedder den index.php?site=products og index.php?site=contact

er det forkert? skal den hedde products.php og contact.php ? Hvordan implementere jeg så min hovedside hvor jeg gerne kun vil have skiftet indeholdet?
Avatar billede repox Seniormester
09. marts 2010 - 15:19 #5
uhm... det er jo lidt svært at sige ud fra de få oplysninger du kommer med.

Det er i sig selv nemt nok at løse det at du gerne vil have at
example.org/products skal pege på example.org/index.php?site=products

Men hvis du har forskellig navngivning af $_GET variablerne på eksempelvis products og articles, så bliver det jo straks værre.
Så skal du lave regler der passer til de to, specifikt, mens resten måske bare skal henvises til index.php?site=whatever.
Avatar billede sebster Nybegynder
09. marts 2010 - 15:30 #6
Jeg har forskellige variabler af fx. products og news. 

Men burde det ikke være til at finde ud af?

Jeg har fundet dette:
RewriteRule    ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$    get_product_by_name.php?category_name=$1&product_name=$2    [NC,L]    # Process product requests

RewriteRule    ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$    get_blog_post_by_title.php?category_name=$1&post_title=$2    [NC,L]    # Process blog posts

Jeg vil derimod gerne have en som laver følgende:

index.php?site=products&product=kage

og en der hedder

index.php?site=news&article=24

Hvordan skriver man det smartest!

Jeg har prøvet i min htaccess fil men der sker intet!
Avatar billede repox Seniormester
09. marts 2010 - 15:47 #7
Du kan prøve at smide det her i din .htaccess (utestet):
Options +FollowSymLinks
RewriteEngine on

RewriteRule    ^products/([A-Za-z0-9\-]+)/?$    /index.php?site=products&product=$1    [NC,L]
RewriteRule    ^news/([0-9]+)/?$    /index.php?site=news&article=$1    [NC,L]
Avatar billede sebster Nybegynder
09. marts 2010 - 15:53 #8
Det sker intet! Ikke engang en fejl meddelelse!
Avatar billede repox Seniormester
09. marts 2010 - 15:56 #9
Hvis der er fejl i, kan du se det i din error log; men dem ved jeg ikke om du har adgang til?
Avatar billede sebster Nybegynder
09. marts 2010 - 16:14 #10
Det tror jeg ikke! Er på surftown, tror ikke den er åben.

Der er ikke andet man kan gøre vel?
Avatar billede repox Seniormester
09. marts 2010 - 16:23 #11
Nu har jeg selv lige testet ovenstående og det virker som det skal.
Så du må gøre et eller andet forkert.
Det er ikke sådan at du arbejder i en mappe under roden, vel? Altså f.eks.
example.org/testsite/products/kage
?
Avatar billede sebster Nybegynder
09. marts 2010 - 16:29 #12
Min htaccess fil ligger i roden, men jeg referer god nok til en htpasswd som ligger lige ved siden af og der er stien
#AuthUserFile /hsphere/local/home/sodeweb/websitet.dk/.htpasswd

Skal der stå noget andet så?
Avatar billede repox Seniormester
09. marts 2010 - 16:48 #13
Nej,det er ligegyldigt; du har nok ikke adgang til mod_rewrite, så.
Avatar billede sebster Nybegynder
09. marts 2010 - 16:57 #14
ok! Smid et svar så får du point!
Avatar billede repox Seniormester
09. marts 2010 - 18:20 #15
Du kan jo lige starte med at spørge support om de ikke understøtter mod_rewrite, inden du lukker spørgsmålet.
Avatar billede sebster Nybegynder
10. marts 2010 - 13:28 #16
Jeg har faktisk snakket med mit webhotel og de siger at mod_rewrite understøttes! Så nu er jeg ret blank!

Jeg har pt skrevet følgende!

Options +FollowSymLinks
RewriteEngine On

RewriteRule    ^products/([A-Za-z0-9\-]+)/?$    index.php?site=products&product=$1    [NC,L]
RewriteRule    ^news/([0-9]+)/?$    index.php?site=news&article=$1    [NC,L]

Kan jeg ikke lave et simpelt script til test fx.

www.example.com/?site=news

kommer til at se således ud

www.example.com/news/!
Avatar billede repox Seniormester
10. marts 2010 - 14:09 #17
Igen - jeg har konstateret at reglerne virker - det ville være bedre lige at spørge dem om de ikke kan fortælle dig hvorfor dine simple regler ikke virker.

Du kan gøre det at du laver midlertidig index.php fil der kun indeholder dette:
<?php
  header("Content-Type: text/plain");
  print_r($_GET);
?>


Når du så kommer ind på example.org/products/kage skulle din browser meget gerne indeholde:
Array
(
    [site] => products
    [product] => kage
)


og når du prøver at gå til example.org/news/23 skulle browseren indeholde:
Array
(
    [site] => news
    [article] => 23
)


Hvis det er tilfældet, så virker dine rewrites - så er det i din PHP kode det fejler.
Avatar billede sebster Nybegynder
10. marts 2010 - 14:20 #18
Det virker! :-)

Er det så mine links der er forkert?

Hvordan skal jeg lave dem? Skal det være med root eller hvordan?
Avatar billede repox Seniormester
10. marts 2010 - 14:29 #19
Jeg kender ikke din kode; hvordan skulle jeg om muligt kunne se hvad du gør forkert?

Jeg ved ikke lige hvad du mener med 'root eller hvordan'?
Avatar billede sebster Nybegynder
10. marts 2010 - 14:32 #20
Min fejl.

Når jeg skriver http://example.com/news

så finder det min side, men det er som om at grafik-filer, billeder, ccs mm som er included ikke vises når jeg trykker videre! Hvad skyldes det?
Avatar billede sebster Nybegynder
10. marts 2010 - 14:42 #21
Nu virker det bare! Skulle bare ændre lidt mere! Mange tak for tålmodigheden. Smid et svar så du kan få point :-)
Avatar billede repox Seniormester
19. marts 2010 - 10:01 #22
Hov - gammel tråd... :)
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