Avatar billede learner Praktikant
15. april 2005 - 11:42 Der er 11 kommentarer og
2 løsninger

Hvad skal jeg vælge? Hvordan gør jeg? Hallway/doorway halløj

Der står i artiklen:

2. Løs problemet med links.
I første omgang, kan du lave din kode så linkene bliver så enkle og meget lig statiske links som muligt. Den sidste dynamiske bid kan du fjerne med en software løsning XQASP fra Exception Digital Enterprise Solutions (http://www.xde.net/xq/tool.xqasp-deep-web/qx/index.htm) kan fjerne ”?” og erstatte det med et ”/” og på den måde hjælpe søgemaskinen med at håndtere linket.

En anden og billigere løsning er at lave et CGI/Perl script der fanger de dynamiske tegn og informationer før query stringen og skifter dem ud med noget der er mere lig statiske links.
(hvis I finder et sådant script, vil jeg gerne høre om det)

Hvis du har dine websider på en Apache web server, kan den løse det meste af problemet for dig. Apache har et modul der kan lave rewrite (mod_rewrite), der gør det muligt for dig at omskrive URL’er der indeholder query strings til URL’er søgerobotten kan læse. Rewrite modulet instaleres ikke som standard, så du er nødt til at kontakte din ISP for at høre om det er muligt, hvis ikke du selv hoster.

Hvis du bruger ColdFusion, kan du konfigurere din server til at udskifte ”?” i alle query string med ”/” og på den måde styre hvordan URL’en kommer til at se ud.

------------------------------------------------------------
Jeg vil gerne lave sådan en løsning som der omtales. Hvordan skal jeg gøre det? Jeg har siden hostet ved B-one

Så er mine spørgsmål:

Jeg kan da ik bruge XQASP til noget, kan jeg? Skal det ik installeres på selve serveren altså ved B-one?

Kører B-one.net på Apache Servere (nej vel? er det ik linux) og kan jeg benytte mod_rewrite?


Jeg har selv forsøgt at lave noget lignende. Jeg ved ik rigtigt om det virker efter hensigten. Jeg har lavet en masse php-filer som bare sender videre ved hjælp af header("location:")

Feks så linker jeg til 'ny bruger' således:
href="/index/ny_bruger_da.php" og den sender så videre til den originale url som var: /pgs/ny_bruger.php?lang=da

Er der en anden og bedre metode????

På forhånd tak :o)
Avatar billede dennismp Nybegynder
15. april 2005 - 12:59 #1
Prøv og læs denne guide: http://mbn.dk/?aid=3

Apache findes sandelig også på unix systemer :) (det kommer oprindelig fra denne verden) og jeg er ret sikker på at b-one også bruge apache.
Avatar billede learner Praktikant
15. april 2005 - 13:43 #2
> og jeg er ret sikker på at b-one også bruge apache.
Hvordan finder jeg ud af det? skal jeg bruge phpinfo() eller???

Det er en god artikel du linker til der :o)
Nogenlunde let at forstå. Men jeg har nu ik helt fattet det alligevel :o)

Jeg har aldrig prøvet at bruge .htacces før. Er det bare et tekstdokument, der hedder .htacces der ligger i roden? Er det let nok? Noget specielt jeg skal være obs på? (feks at b-one kører safe mode eller noget)

Er $PATH_INFO ik den gamle måde at skrive på? Skal man ik skrive $_SERVER['PATH_INFO'] nu til dags?

Og hvad nu hvis man tvinger den til at alle filer er .php, må der så gerne ligge filer som hedder .php eller skal de allesammen have fjernet .php

Har du evt set noget mere kode et sted. Du ved, jo mere man ser, jo lettere er det sommetider at forstå.

Jeg er virkelig glad fordi du hjælper mig med det her :o) :o) Tak
Avatar billede dennismp Nybegynder
15. april 2005 - 13:54 #3
.htaccess (to s'er) er en alm tekstfil. Du ligger den i roden (men i princippet også i et underdir, men så virker det kun der).

Jo $PATH_INFO bør skrives som $_SERVER[..]

De må gerne hedde .php. Apache bruger bare endelsen til at finde ud af hvilken type fil den har fat i. Hvis du fortæller den explicit at det er en .php fil, så kan du kalde den .txt, .html, .css, .learner.. osv. Den er ligeglad, den ved jo godt hvad det er.

Jeg har ikke et eksempel lige nu. Men du kan prøve at lave en "case" på hvordan du gerne vil have det til at virke, så kan jeg da prøve (bliver nok først om et par timer)
Avatar billede learner Praktikant
19. april 2005 - 10:58 #4
Jeg er ved at arbejde med det nu og har fået det til at virke lidt, men ikke helt som jeg gerne vil.

det ligger på:
tilbudsmaskinen.dk

Jeg har lagt en .htaccess fil i roden med dette i:
ForceType application/x-httpd-php
RewriteEngine on
RewriteRule ^da/([^/]+)/?$ /da.php?id=$1


og jeg har lagt en da.php fil ud som jeg har klippet .php af så den hedder 'da'
i 'da' står der:
<?php
$path_info = $_SERVER['PATH_INFO'];
echo "path_info=".$path_info;
echo "<br>query=".getenv("QUERY_STRING");
?>

.htaccess og 'da' ligger altså begge i roden

Når jeg skriver:
tilbudsmaskinen.dk/da/12/
får jeg: query=id=12 (og det er jo alletiders)

Jeg vil gerne have at jeg kan skrive tilbudsmaskinen.dk/da/ord1/ord2/ord3/
Og så skal den gå til: tilbudsmaskinen.dk/da.php/ord1/ord2/ord3/
eller måske gå til: tilbudsmaskinen.dk/da.php?id=ord1_ord2_ord3

Jeg tror at jeg laver fejlen i denne linie:
RewriteRule ^da/([^/]+)/?$ /da.php?id=$1
eller i denne linie:
ForceType application/x-httpd-php
Rigtigt?

Og så vil jeg forresten gerne beskytte filen 'da' så ingen kan downloade den eller kigge i den :o) Hvordan gør jeg det?

Og så vil jeg forresten gerne vide hvorfor jeg ikke kan bruge opdater-knappen som man ellers kan? Prøv evt selv på tilbudsmaskinen.dk/da/12/

Glæder mig til at få lidt assistance :o)
Avatar billede dennismp Nybegynder
19. april 2005 - 11:36 #5
folk kan normalt ikke hente php filer, med minre du gør noget så de kan.

Opdater knappen? Jeg er ikke med - kan ikke se fejl.

Istedet for at bruge rewrite kan du også:

rename din da.php til da

og i htaccess
<file da>
ForceType application/x-httpd-php
</file>

så burde du kunen skrive da/asdf/adfadfA/dsfadf

og "da" scriptet bliver kaldt. Så kan du bruge getenv('QUERY_STRING') (eller $_SERVER) til at hente URL'en ud og så ellers bearbejde og finde ud af om den er valid.
Avatar billede learner Praktikant
19. april 2005 - 11:49 #6
:o) tak, jeg vil lige prøve de ting du skriver! tak!

Men vedr 'folk kan normalt ikke hente php filer, med minre du gør noget så de kan'
Skal jeg ikke omdøbe da.php til da (altså fjerne.php)
Avatar billede learner Praktikant
19. april 2005 - 11:53 #7
rename din da.php til da ????
Jeg forstår ik rigtigt hvad jeg skal gøre?
Avatar billede learner Praktikant
19. april 2005 - 12:37 #8
Jeg kan ik få det til at virke. er du flink at forklare lidt nærmere dennismp.

Hvad gør denne linie:
RewriteRule ^da/([^/]+)/?$ /da.php?id=$1

Og hvad gør denne:
<file da>
ForceType application/x-httpd-php
</file>
Avatar billede learner Praktikant
19. april 2005 - 14:01 #9
Jeg vil bare gerne at:
tilbudsmaskinen.dk/da/ord1/ord2/ord3/
Bliver til:
tilbudsmaskinen.dk/da.php/ord1/ord2/ord3/

Så er jeg meget tilfreds. Men jeg kan simpelthen ikke få den til det
Avatar billede learner Praktikant
19. april 2005 - 14:25 #10
Nu har jeg løsningen tror jeg:

.htaccess indeholder:
RewriteEngine on
RewriteRule ^pgs_da/(.*)?$ /pgs_da.php?$1

og så ligger der en pgs_da.php med dette indhold:
<?php
echo getenv("QUERY_STRING");
?>
og den printer lige så fint alt efter pgs_da/

Så nu skal getenv("QUERY_STRING") blot raffineres lidt og så kan det bruges.

Jeg er glad :o)

Har du en kommentar eller er der noget jeg bør overveje, så skriv endelig...

Dennismp smid et svar for du skal ha nogen point for hjælpen :o)
Avatar billede dennismp Nybegynder
19. april 2005 - 17:36 #11
Hej, beklager at jeg ikke har svaret før - men har været optaget af rapportksrivning, møder og undervisning.

> Hvad gør denne linie:
> RewriteRule ^da/([^/]+)/?$ /da.php?id=$1

Når en URL modtages af apache fx

da/abc/ omskrives den af mod-rewrite til
da.php?id=abc

så de to urls (da/abc/ og da.php?id=abc) sider er ens, da apache sørger for at omskrive den første til den anden.

> <file da>
> ForceType application/x-httpd-php
> </file>

Det skal faktisk være files - nu hvor jeg har tjekket efter. Beklager :(

Denne gør noget andet, den omskriver slet ikke. Der fortæller du apache at filen "da" er en php fil, og gør dig istand til at lave php kode som kaldes med fx http://dinserver.dk/da, http://dinserver.dk/da/nogetandet eller http://dinserver.dk/da/nogetandet/smart/ikke

Du kan så bruge, på samme måde som du gør nu, bruge de variabler apache stiller til rådighed, så der sker noget forskelligt at efter hvordan url'en kaldes.

PS: Jeg har startet firma og vil se om jeg kan tjene lidt penge på een af mine ideer :) Må vi se om jeg har taget fejl i min bedømmelse af mine ideer.
Avatar billede learner Praktikant
19. april 2005 - 17:42 #12
Lyder spændende. Held og lykke herfra... Jeg er lidt nysgerrig selvfølgelig, såe hvis du har lyst til at skrive lidt om det du har startet...
Avatar billede learner Praktikant
19. april 2005 - 17:43 #13
Og tak selvfølgelig for hjælpen
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