Avatar billede Slettet bruger
05. marts 2004 - 14:12 Der er 34 kommentarer og
1 løsning

rewrite_mod + dynamiske sider

Hej med Jer....

Efter at have læst Bufferzone artikler, om hvordan man optimere sin hjemmeside til div. søgemaksiner, opdager jeg til min store skræk at søgemskinerne robotter ikke er glade for dynamiske sider.
Men heldigvis findes der jo en løsning på dette.

Så vidt jeg har forstået, så installere man et ekstra modul på sin Apache server som hedder "rewrite_mod"

Med dette modul skulle det være muligt, at få sine sider til at virke statiske over for søgerobotterne.
Jeg har selvfølgelig surfet lidt rundt på nette, men jeg må sige, at jeg nok behøver lidt hjælp til dette.

Og her er det så I kommer ind i billedet. Jeg håber der er en der kan forklare mig hvordan dette modul konfigureres på min Apache server.

På forhånd tak

//PhatLasse
Avatar billede htm Nybegynder
05. marts 2004 - 14:37 #1
Fjern # foran følgende linier i httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

så understøtter din apache mod_rewrite :-)

Hvis du vil bruge mod_rewrite fra .htaccess skal AllowOverride stå til enten FileInfo eller All

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
    AllowOverride All

Derudover kan du læse lidt om mod_rewrite her: http://mbn.dk/?aid=31&lang=dk
Avatar billede Slettet bruger
05. marts 2004 - 21:47 #2
OK, jamen der blev jeg jo lidt klogere :o)

Jeg synes bare det driller lidt.
Hvis du prøver at kigge på min side: www.digitalempire.ath.cx , kan du så gennemskue hvordan denn linje skal se ud:

RewriteRule ^([0-9]+)/$ /?id=$1
Avatar billede Slettet bruger
05. marts 2004 - 21:58 #3
Jeg har nu prøvet med:
RewriteRule ^([0-9]+)/$ /content.php?article.=$1
men det virker ikke...
Avatar billede htm Nybegynder
05. marts 2004 - 22:05 #4
Jeg kan ikke helt gennemskue hvad det er du vil? Men hvis du kan fortælle det, kan jeg give dig din mod_rewrite :-)
Avatar billede Slettet bruger
05. marts 2004 - 23:45 #5
faktisk som det står beskrevet i det link du har lagt:

<klip>
Et typisk eksempel vil være, at man gerne vil skjule, at man bruger dynamiske adresser. Nogle søgemaskiner undlader at indeksere sider der indeholder spørgsmålstegn i adressen.

Lad of sige at vi har adresser som http://host/?id=5. Det vil vi have lavet om til http://host/5/.
</klip>

Og grunden er selvfølgelig, at jeg er bange for at mín side ikke bliver indekseret rigtig af søgemaskinerobotterne...
Avatar billede htm Nybegynder
06. marts 2004 - 00:15 #6
Denne bør så virke fint - evt. uden / før ?id

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([0-9]+)/?$ /?id=$1
Avatar billede Slettet bruger
06. marts 2004 - 23:30 #7
RewriteRule ^([0-9]+)/?$ /?id=$1 <--- kan denne linje gå, når nu jeg har sider der hedder f.eks:

http://www.digitalempire.ath.cx/content.php?article.57
eller:
http://www.digitalempire.ath.cx/content.php?review.25
eller:
http://www.digitalempire.ath.cx/forum_viewtopic.php?13.7
Avatar billede Slettet bruger
06. marts 2004 - 23:38 #8
den kan heller ikke li' linjen: "RewriteBase /"
så kommer den med denne fejl:
"only valid in per-directory config files""
Avatar billede htm Nybegynder
06. marts 2004 - 23:51 #9
Lige kort om rewriterule:

Den er bygget op af to dele
- den første del er hvad der skal matches på. eks hvis det er domain.dk/355 er det tal der skal matches på. Det skrives så med alm reg. exp.
- Den anden del er hvor de strenge der matcher skal redirectes til. i mit eks. redirectes der til /?id=$1 det er også det samme som eks. index.php?id=$1
-$1 betyder første match - dvs. den første parantes - hvis du har flere argumenter skal der være flere paranteser.
-Derfor hvis du vil have den til at gå til content.php?id=$1 ændrer du det bare til det.

Rewritebase er kun gyldig i <Directory> eller i .htaccess - det er hellere ikke nødvendigt andre steder. Hvis du bruger det i eks. virtualhosts skal du bare fjerne det.
Avatar billede Slettet bruger
07. marts 2004 - 20:08 #10
OK.

vil det sige at disse linjer ville kunne bruges:

RewriteRule ^([0-9]+)/?$ /?article.$1
RewriteRule ^([0-9]+)/?$ /?review.$1
Avatar billede htm Nybegynder
07. marts 2004 - 20:24 #11
Nej ikke sammen, for der er intet der afgør hvad der skal sendes hvorhen!

og dit eks. sender http://domain.dk/333 til http://domain.dk/?arcticle.333 - ikke særligt informativt. skulle nok være http://domain.dk/?arcticle=333

Og du skal desuden også huske RewriteCond og RewriteEngine On
Avatar billede Slettet bruger
07. marts 2004 - 20:55 #12
Jamen, hvis nu min side hedder:
http://www.digitalempire.ath.cx/content.php?article.57

Så skal den vel være:
RewriteRule ^([0-9]+)/?$ /content.php?article.$1

Ja, du må altså unskylde - jeg synes jeg begynder at lyde lidt "dum". Jeg spørger om det samme igen og igen, men har nok bare svært ved at forklare det :o)
Avatar billede Slettet bruger
07. marts 2004 - 20:57 #13
og kan jeg teste det ved at skrive:
http://www.digitalempire.ath.cx/57/ i min browser ?
Avatar billede htm Nybegynder
07. marts 2004 - 21:01 #14
Nu vil jeg nok også påstå at
http://www.digitalempire.ath.cx/content.php?article.57
ikke giver meget mening - men at den derimod skulle være
http://www.digitalempire.ath.cx/content.php?article=57

altså med = i stedet for .

Men hvis det er med punktum . skal det være som du skriver. Det er korrekt!

Ja du kan teste det ved at skrive http://www.digitalempire.ath.cx/57/ i dit browser, det er det der er meningen.
Avatar billede Slettet bruger
07. marts 2004 - 21:06 #15
Ja, men problemet er at min side er bygget på et CMS system der hedder E107, og her er det sat op, så den laver adresserne med . og ikke med =  - desværre....

Men langt om længe har jeg da fået din rigtige linje sat ind i min Virtualhost.

Det virker bare ikke med f.eks.: http://www.digitalempire.ath.cx/57/

og jeg har
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-F
med, og min Apache er også genstartet.....
Avatar billede Slettet bruger
07. marts 2004 - 21:09 #16
her er min Virtualhost hvis det kan hjælpe:

<VirtualHost *>
  ServerAdmin phatlasse@druk.nu
  DocumentRoot c:\WEB\WWW\digitalempire
  DirectoryIndex index.php
  ServerName digitalempire.ath.cx
  ServerAlias www.digitalempire.ath.cx
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-F
  RewriteRule ^([0-9]+)/?$ /content.php?article.$1
</VirtualHost>
Avatar billede htm Nybegynder
07. marts 2004 - 21:11 #17
Meen - det virker ikke særlig godt :-)

Du kan tjekke i din error log, hvad den forespørger på.

Det er også altid en god ide at sætte RewriteLog og sætte rewriteloglevel til 9
http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteLog

Du skal også prøve uden / før content
Avatar billede Slettet bruger
07. marts 2004 - 21:13 #18
OK - jeg kigger lidt på det.
Du skal ihvertfald have tak for hjælpen.
læg et svar :o)
Avatar billede htm Nybegynder
07. marts 2004 - 21:28 #19
ok - men spørg endelig hvis du stadig er i tvivl, eller ikke kan få det til at virke.
Avatar billede Slettet bruger
07. marts 2004 - 22:02 #20
(2) init rewrite engine with requested uri /57/
(3) applying pattern '^([0-9]+)/?$' to uri '/57/'
(1) pass through /57/

kan du se hvor fejlen ligger ?
Avatar billede htm Nybegynder
07. marts 2004 - 22:05 #21
Hvad siger din error.log ?
Avatar billede Slettet bruger
07. marts 2004 - 22:07 #22
Hvis jeg skriver adressen: http://www.digitalempire.ath.cx/57/

kommer den med de 3 linjer jeg har lagt...
Avatar billede htm Nybegynder
07. marts 2004 - 22:09 #23
Går ud fra det er i rewritelog - (det ligner det) det er også interesant hvad du har stående i error.log .

Og hvis det er error.log hvad siger reweirelog så :-)

Og du har rewriteloglevel 9 på ?
Avatar billede Slettet bruger
07. marts 2004 - 22:12 #24
sorry:

Rewritelog: (level 9)
(2) init rewrite engine with requested uri /57/
(3) applying pattern '^([0-9]+)/?$' to uri '/57/'
(1) pass through /57/

Hvor finder jeg min errorlog ?
Avatar billede Slettet bruger
07. marts 2004 - 22:15 #25
har fundet den:

File does not exist: c:/web/www/digitalempire/57/
Avatar billede htm Nybegynder
07. marts 2004 - 22:15 #26
Det kan du se i din httpd.conf hvor de befinder sig.

Som standard på windows er det i logs biblioteket som befinder sig installationsbiblioteket for apache.

På linux er det standard /var/logs
Avatar billede Slettet bruger
07. marts 2004 - 22:19 #27
Den skriver: File does not exist: c:/web/www/digitalempire/57/ i errorlog'en...
Avatar billede htm Nybegynder
07. marts 2004 - 22:29 #28
Jeg må indrømme jeg ved ikke hvad der sker, der må være noget med rewriterule i forbindelse med virtualhosts eller lign.

Har lige testet det på min server. Fik samme fejl som dig, da jeg smed det i virtualhosts. Men smed det så i et directory så virkede det med det samme. :-)

Det du kan gøre er sådan:

<Directory "c:\WEB\WWW\digitalempire">
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-F
  RewriteRule ^([0-9]+)/?$ /content.php?article.$1
</Directory>

Og så smid din rewrite ud af virtualhosts. Dette smider du bare i httpd.conf.
Avatar billede Slettet bruger
07. marts 2004 - 22:41 #29
nu virker det - halvt :o)

prøv dette link: http://www.digitalempire.ath.cx/57/
Avatar billede Slettet bruger
07. marts 2004 - 22:42 #30
nååå OK  -  det skal se sådan ud: http://www.digitalempire.ath.cx/57
og så virker det.
KANOOOON - du er gud :o)
Endnu engang 1000 tak for hjælpen....
Avatar billede Slettet bruger
07. marts 2004 - 22:43 #31
Men hvor kommer den egentlig med fejl, når man bruger dette link: http://www.digitalempire.ath.cx/57/ ???
Avatar billede htm Nybegynder
07. marts 2004 - 22:46 #32
Grunden til at den fejler med dine billeder css etc. er at du bruger relativer stier til som img/billede.jpg så forsøger browseren at finde billedet i http://www.digitalempire.ath.cx/57/img/billede.jpg - og det kan jo ikke finde.

Løsningen er at bruge absolutte stier som /img/billede.jpg eller http://www.digitalempire.ath.cx/img/billede.jpg
Avatar billede Slettet bruger
07. marts 2004 - 22:48 #33
OK - men efter som det stadig er E107 det hele er bygget på, og min viden ikke rækker til at rette sådanne ting, må jeg jo leve med det som det er.

Men mit problem mht. til søgemaskinerne er vel løst går jeg ud fra. ?
Avatar billede htm Nybegynder
07. marts 2004 - 22:52 #34
Ja hvis du så også bruger det i dine egne links - det nytter ikke at du laver dette trick med mod_rewrite hvis du stadig linker internt til eks. content.phparcticle.57

Søgemaskinen følger jo links på din og andre sider. Og det er som du nok ved ikke det eneste i en god placering i en søgemaskine.

Men alt dette kan du læse om i nogle af de arktikler på eksperten. Der er nogle gode om søgemaskiner.
Avatar billede Slettet bruger
07. marts 2004 - 22:56 #35
Jeps - jeg har læst alle de gode artikler på E om søgemaskiner. Det var her jeg blev opmærksom på problemet.
Men nu er jeg da kommet et skridt næmmere en top 10 på Google :o)
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