Hvis man nu dynamisk skal kunne oprette vilkårligt mange artikler, og jeg gerne vil have at disse artikler skal have unikke og sigende url'er af hensyn til søgemaskinerne, hvordan gør man så det smartest? For hvis hver artikel skal generere en unik fil så vil jeg jo ende op med et ualmindeligt stort antal filer. Der må være en smartere måde at gøre det på, så man stadig får et sigende navn med i adressen uden at der skal ligge en fysisk fil for hver artikel. Nogen gode idéer? |
Hej Sanne
Dynamiske sider i forskelligt antal til et website, så kan jeg kun sige database. Ikke noget med én fil pr. artikel. Lav en fælles skabelon for alle artiklerne, og på basis af en URL-parameter (f.eks. et ID der refererer til en række i databasetabellen) så henter skabelonen så at sige data ud og fletter ind i skabelonen. Vedligholdelse og rettelser bliver meget nemmere at håndtere på denne måde.
Til dit spørgsmål ang. sigende URL'er så vil en URL der f.eks. hedder "skabelon.asp?ID=117" ikke være go'. Der er forskellige løsninger, men umiddelbart kender jeg kun i detaljer URL Rewriter modulet til .NET løsninger: http://www.urlrewriter.net/
Jeg ved ikke lige hvor meget du har styr på .NET eller om det overhovedet er det du skal rode med? (Kan dog se at jeres site er lavet i asp, så lidt afhængige af Microsoft er i jo nok )
URL Rewriter fungerer som et http-modul. Dvs. at når et request på en side bliver lavet, ryger requestet igennem http-modulet før noget andet. I web.config filen filen skriver man f.eks. følgende:
<add name="Skabelon" virtualUrl="^~/artikler/(.*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/skabelon.aspx?Filename=$1" ignoreCase="true"/>
Her forklarer man at et request der matcher ^~/artikler/(.*).aspx (der matches op vha. regular expressions) skal håndteres af filen skabelon.aspx?Filename=$1. Requester du f.eks:
http://www.mitdomaene.dk/artikler/artikel-om-url-rewriting.aspx bliver requestet håndteret af http://www.mitdomaene.dk/skabelon.aspx?Filename=artikel-om-url-rewriting uden at brugere/browseren/søgemaskinen ved noget om det.
Dette er én måde at gøre det på, og den fungerer fortrinligt i et .NET miljø.
Som der skrives på urlrewriter.net: UrlRewriter.NET provides similar IIS Rewrite capabilities that the Apache web server provides with mod_rewrite and .htaccess. Altså kan det samme lade sig gøre på open-source systemer, men dette har jeg dog ikke erfaring med.
Mvh. Anders