Ik ben een nieuwe website aan het opbouwen, daarbij ben ik momenteel het framework aan het opzetten. Eén van de eisen is dat er zoekmachine vriendelijk url's gebruikt gaan worden als in
www.domein.nl/var1/var2/enz.
Na onderzoek zijn er verschillende manier om dit te doen:
1. www.domein.nl/index.php/var1/var2
2. www.domein.nl/var1/var2
3. www.domein.nl/index/var1/var2
De hosting ruimte is op dit moment al geregeld en wordt betaald, het is dus eigenlijk geen optie deze nog te veranderen (o.a. omdat daar ook de domeinen zijn ondergebracht.)
Echter, door de huidige hoster vallen opties 1 en 3 al af want:
1. www.domein.nl/index.php/var1/var2
--> genereerd een foutmelding welke volgens de hoster niet opgelost kan worden
3. www.domein.nl/index/var1/var2
--> ze ondersteunen geen .htaccess wat bij deze nodig is.
Ik heb al contact gehad met de hoster (dds) en daaruit komt het volgende: ze gebruiken een eigen rewrite van de apache software. Deze rewrite is closed source en de specificaties hiervan weet ik dus ook niet.
.htaccess wordt door deze rewrite niet ondersteund dus dat kan ik niet gebruiken, en ik kan zelf geen rewrite op de rewrite maken.
De mensen van dds zijn echter wel hulpzaam geweest en op dit moment gebeurd er het volgende. Binnen de standaard pakketten worden de 404's omgeleid naar het bestand 'nietgevonden.html'. Ik wilde dat de 404's echter naar een php bestand toegeleid werden en het `nietgevonden.html` bestand wordt op dit moment dan ook uitgevoerd als een PHP bestand waardoor ik php code in het html document kan zetten.
Misschien niet de meeste mooie oplossing, maar het werkt.
Nog 1 probleem ... de 404 header die standaard wordt meegestuurd moet omgezet worden naar een 200 header want er is natuurlijk niets mis, en zoek machine's moet dat ook niet gaan "denken".
Om dit te bereiken gebruik ik de volgende code:
De pagina wordt keurig als php uitgevoerd en komt mooi afgebeeld.
Wanneer ik echter ga controleren met www.web-sniffer.com dan krijg ik het volgende:
Wanneer ik onderaan nogmaals een header 200 stuur krijg ik niet eens de foutmelding dat de header al verstuurd is.
Ik heb zelf al van alles geprobeerd maar weet echt niet waar ik dit nog moet zoeken. Heeft iemand een idee of dit server afhankelijk is, of PHP ?? Heeft iemand een oplossing??
ps ik kan/mag helaas het domein nog niet vrijgeven.
www.domein.nl/var1/var2/enz.
Na onderzoek zijn er verschillende manier om dit te doen:
1. www.domein.nl/index.php/var1/var2
2. www.domein.nl/var1/var2
3. www.domein.nl/index/var1/var2
De hosting ruimte is op dit moment al geregeld en wordt betaald, het is dus eigenlijk geen optie deze nog te veranderen (o.a. omdat daar ook de domeinen zijn ondergebracht.)
Echter, door de huidige hoster vallen opties 1 en 3 al af want:
1. www.domein.nl/index.php/var1/var2
--> genereerd een foutmelding welke volgens de hoster niet opgelost kan worden
3. www.domein.nl/index/var1/var2
--> ze ondersteunen geen .htaccess wat bij deze nodig is.
Ik heb al contact gehad met de hoster (dds) en daaruit komt het volgende: ze gebruiken een eigen rewrite van de apache software. Deze rewrite is closed source en de specificaties hiervan weet ik dus ook niet.
.htaccess wordt door deze rewrite niet ondersteund dus dat kan ik niet gebruiken, en ik kan zelf geen rewrite op de rewrite maken.
De mensen van dds zijn echter wel hulpzaam geweest en op dit moment gebeurd er het volgende. Binnen de standaard pakketten worden de 404's omgeleid naar het bestand 'nietgevonden.html'. Ik wilde dat de 404's echter naar een php bestand toegeleid werden en het `nietgevonden.html` bestand wordt op dit moment dan ook uitgevoerd als een PHP bestand waardoor ik php code in het html document kan zetten.
Misschien niet de meeste mooie oplossing, maar het werkt.
Nog 1 probleem ... de 404 header die standaard wordt meegestuurd moet omgezet worden naar een 200 header want er is natuurlijk niets mis, en zoek machine's moet dat ook niet gaan "denken".
Om dit te bereiken gebruik ik de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <?php header( "HTTP/1.1 200 OK" ); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>geen 404</title> </head> <body> <?php echo('Dit moet geen 404 zijn.'); ?> </body> </html> |
De pagina wordt keurig als php uitgevoerd en komt mooi afgebeeld.
Wanneer ik echter ga controleren met www.web-sniffer.com dan krijg ik het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| HTTP Request Header Connect to <<ip>> on port 80 ... ok GET /foofoo HTTP/1.1[CRLF] Host: www.domein.nl[CRLF] Connection: close[CRLF] Accept-Encoding: gzip[CRLF] Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5[CRLF] Accept-Language: en-us,en;q=0.5[CRLF] Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7[CRLF] User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 Web-Sniffer/1.0.22[CRLF] Referer: http://web-sniffer.net/[CRLF] [CRLF] HTTP Response Header Name Value Delim HTTP Status Code: HTTP/1.1 [b]404[/b] Not Found Date: Thu, 17 Nov 2005 19:14:19 GMT CRLF Server: Apache/1.3.33 (Debian GNU/Linux) mod_fastcgi/2.4.2 CRLF Connection: close CRLF Transfer-Encoding: chunked CRLF Content-Type: text/html CRLF Content (0.28 KiB) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>geen 404</title> </head> <body> Dit moet geen 404 zijn. </body> </html> |
Wanneer ik onderaan nogmaals een header 200 stuur krijg ik niet eens de foutmelding dat de header al verstuurd is.
Ik heb zelf al van alles geprobeerd maar weet echt niet waar ik dit nog moet zoeken. Heeft iemand een idee of dit server afhankelijk is, of PHP ?? Heeft iemand een oplossing??
ps ik kan/mag helaas het domein nog niet vrijgeven.
-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net