Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Software] .htaccess probleem (https://forum.scholieren.com/showthread.php?t=1093184)

Jordi 03-02-2005 16:48

[htaccess] probleem
 
Ik heb net mij .htaccess-bestand overgezet naar een andere server en de meeste dingen lijken goed te werken. Het enige probleem is echter dat een paar links niet worden ge-mod_rewrite.

Dit is de mijn hele .htaccess-bestand:
RewriteEngine On
RewriteRule ^index.php(.+)$ index.php$1

RewriteRule ^informatie/archief/((.+)[^/])(/?)$ index.php?page=messages/archive.php&forum=$1
RewriteRule ^informatie/((.+)[^/])/([0-9]+)$ index.php?page=messages/categories/$1.php&topic=$3
RewriteRule ^informatie/((.+)[^/])(/?)$ index.php?page=messages/categories/$1.php

RewriteRule ^admin/meer/([0-9]+)/?([0-9]?)$ index.php?page=admin/login.php&action=increase&position=$1&forum=$3
RewriteRule ^admin/minder/([0-9]+)/?([0-9]?)$ index.php?page=admin/login.php&action=decrease&position=$1&forum=$3
RewriteRule ^admin/instellingen$ index.php?page=admin/settings.php
RewriteRule ^admin/wachtwoord-vergeten$ index.php?page=admin/lostpassword.php
RewriteRule ^admin/uitloggen$ index.php?page=admin/login.php&mode=logout
RewriteRule ^admin/plaats-bericht/([0-9]+)$ index.php?page=messages/post.php&id=$1
RewriteRule ^admin/plaats-bericht$ index.php?page=messages/post.php
RewriteRule ^admin/wijzig-bericht/([0-9]+)$ index.php?page=messages/post.php&mode=edit&id=$1
RewriteRule ^admin/documentatie$ index.php?page=admin/documentatie.php
RewriteRule ^admin/?$ index.php?page=admin/login.php

RewriteRule ^home/?$ index.php?page=home.php
RewriteRule ^contact/?$ index.php?page=contact.php
RewriteRule ^menu$ index.php?page=menu.php

RewriteRule ^bestellen/?$ index.php?page=order.php

RewriteRule !((image\.php)|\.(gif|jpg|png|css|ico|xml|js))$ index.php

De groen gekleurde regels werken niet. Als ik bijvoorbeeld domein/contact intyp, krijg ik niet de contactpagina, maar de standaardpagina die je krijg als je iets intypt dat niet bestaat. Het vreemde vind ik dat er wel regels tussen staan van precies dezelfde vorm, die wel werken. Nog vreemder is het dat ik contact/menu/home door elke willekeurig woord kan vervangen en dat het dan ineens wel goed werkt.

Dus dit werkt wel:
RewriteRule ^klotehtaccess/?$ index.php?page=contact.php

Maar dit niet:
RewriteRule ^contact/?$ index.php?page=contact.php

Het lijkt er dus een beetje op dat menu, contact en home verboden woorden ofzo zijn, maar volgens mij kan dat helemaal niet in .htaccess. Het maakt trouwens ook niet uit waar ik deze dingen in het bestand neerzet (bovenaan dus ofzo). Weet iemand misschien wat ik hier aan kan doen, behalve gewoon andere namen kiezen voor die pagina's?

Enlightenment 03-02-2005 17:53

Ik heb verder weinig kennis van PCRE's dus daar kan ik je niet echt mee helpen, maar zoiets is natuurlijk wel een smerige oplossing. Waarom loods je niet *alles* naar 1 php bestant en kijk je aan de hand van de url welke pagina je moet includen?

Manuzhai 03-02-2005 18:06

Zijn het andere versies van Apache?

Jordi 03-02-2005 18:16

Citaat:

Enlightenment schreef op 03-02-2005 @ 18:53 :
Ik heb verder weinig kennis van PCRE's dus daar kan ik je niet echt mee helpen, maar zoiets is natuurlijk wel een smerige oplossing. Waarom loods je niet *alles* naar 1 php bestant en kijk je aan de hand van de url welke pagina je moet includen?
Tja, dat zou ik eventueel misschien wel kunnen doen, maar ik prefereer toch het gebruik van .htaccess als dat tenminste normaal doet...

Citaat:

Manuzhai schreef op 03-02-2005 @ 19:06 :
Zijn het andere versies van Apache?
Dat weet ik niet. Staat dat in phpinfo()? Ik vraag me echter af of het daar aan ligt. Nou ja, eigenlijk heb ik geen idee waar het aan ligt. Ik vind het gewoon heel erg vreemd dat ik die drie woorden niet blijk te mogen gebruiken. Het zal wel aan mij liggen, maar dat slaat toch nergens op?

Enlightenment 03-02-2005 19:28

Kan aan vanalles liggen, andere versie van apache, andere configuratie, andere PCRE-processing. Weet ik veel. :)

De Apache documentatie is trouwens weinig positief over mod_rewrite rules in een .htaccess. Het werkt wel, maar wel met een omweg. Waarschijnlijk performance-remmend en misschien ook niet helemaal bugloos. Probeer het eens direct in de httpd.conf.

Jordi 03-02-2005 20:41

Ik heb echt helemaal geen verstand van dit soort dingen. Ik kan eigenlijk alleen maar een beetje PHP programmeren en ik was allang blij dat ik dat .htaccess-dinges werkend had gekregen (maar dus alleen op die andere sever). :S

Waar staat die httpd.conf? Of moet ik die ook zelf maken? En kan ik daar dan gewoon vrolijk mijn mod_rewrite-regeltjes in plakken, of moet dat daar weer anders?

TIGEK 03-02-2005 20:54

Citaat:

Jordi schreef op 03-02-2005 @ 17:48 :
RewriteRule ^home/?$ index.php?page=home.php
RewriteRule ^contact/?$ index.php?page=contact.php
RewriteRule ^menu$ index.php?page=menu.php

[/B]
Ik heb er ook last van op mijn website
Gewoon de bestand een andere name geven dus
RewriteRule ^home/?$ index.php?page=home2.php

Ofzo de gebruikers ziet het toch niet

Gimme more beer 03-02-2005 21:08

Citaat:

Enlightenment schreef op 03-02-2005 @ 18:53 :
Ik heb verder weinig kennis van PCRE's dus daar kan ik je niet echt mee helpen, maar zoiets is natuurlijk wel een smerige oplossing. Waarom loods je niet *alles* naar 1 php bestant en kijk je aan de hand van de url welke pagina je moet includen?
Mee eens, waarom link je uberhaupt niet gewoon direct naar index.php?page=... ?

Ik kan me niet voorstellen dat dit meerwaarde heeft, zeker omdat je constant zit te klooien met de compatibiliteit.

Jordi 03-02-2005 23:00

Citaat:

TIGEK schreef op 03-02-2005 @ 21:54 :
Ik heb er ook last van op mijn website
Gewoon de bestand een andere name geven dus
RewriteRule ^home/?$ index.php?page=home2.php

Ofzo de gebruikers ziet het toch niet

De naam van het bestand veranderen maakt niet uit. Het gaat om de url die ernaar verwijst (of hoe zeg je dat). Wat er in de adresbalk komt te staan in ieder geval.

Ik heb dat nu maar als tijdelijke (en misschien wel permanente) oplossing veranderd. Dus nu is het 'keuzemenu' ipv 'menu' en 'info' ipv 'contact'. Ik vind het wel irritant dat het niet zo kan zoals ik het wil en al helemaal omdat ik het nergens op vind slaan dat ik de woorden 'menu' en 'contact' niet mag gebruiken ofzo, maar goed, dit is ook niet écht erg.

@Gimme more beer:
Ik vind dit zo een stuk mooier. OK, het is wel iets minder makkelijk, maar ik dacht: ik probeer het een keertje en nu heb ik geen zin om alles terug te veranderen omdat één dingetje niet werkt.
En wat bedoel je met dat ik constant zit te klooien met de compatibiliteit? Dat het nu niet werkt op die nieuwe server? Zo vaak wissel ik niet van server hoor, dus dat vind ik nog niet zo vreselijk.

Enlightenment 04-02-2005 01:48

Citaat:

Gimme more beer schreef op 03-02-2005 @ 22:08 :
Mee eens, waarom link je uberhaupt niet gewoon direct naar index.php?page=... ?

Ik kan me niet voorstellen dat dit meerwaarde heeft, zeker omdat je constant zit te klooien met de compatibiliteit.

Kijk eens naar mijn site, en zie de mooie URLs. Dát is de meerwaarde, en deze is voor mij heilig. :)

Ik gebruik maar één mod_rewrite regel, eentje die alles naar de masterscript stuurt, en deze bepaalt aan de hand van de url wat er gedaan moet worden. Dus ook images serveren en caching afhandelen. :)

Jordi 04-02-2005 10:35

Citaat:

Enlightenment schreef op 04-02-2005 @ 02:48 :
Kijk eens naar mijn site, en zie de mooie URLs. Dát is de meerwaarde, en deze is voor mij heilig. :)

Ik gebruik maar één mod_rewrite regel, eentje die alles naar de masterscript stuurt, en deze bepaalt aan de hand van de url wat er gedaan moet worden. Dus ook images serveren en caching afhandelen. :)

Dus jij hebt zoiets als deze regel:
RewriteRule !((image\.php)|\.(gif|jpg|png|css|ico|xml|js))$ index.php

En dan staat in je index.php iets als:
PHP-code:

switch ($_SERVER['REQUEST_URI'])
{
case 
"forum"$page "forum.php"; break;
case 
"contact"$page "contact.php"; break;
...
}
?> 

Klopt dat een beetje?

Manuzhai 04-02-2005 12:07

Ik gebruik liever $_SERVER["PATH_INFO"]. En meestal doe ik dan een include van dat bestand aan de hand van het meegegeven pad.

Overigens denk ik niet dat er veel verschillen in de door Apache gebruikte PCRE zitten, anders dan in verschillende Apache versies (die staat trouwens ook in je phpinfo(), ja).

Manuzhai 04-02-2005 12:09

Citaat:

Enlightenment schreef op 04-02-2005 @ 02:48 :
Kijk eens naar mijn site, en zie de mooie URLs.
Ook wel: Cool URIs Don't Change. Mocht je later willen overstappen naar een andere technologie (omdat Python nou eenmaal veel geiler is dan PHP, bijvoorbeeld), dan wil je daar niet al je URIs op aanpassen.

Enlightenment 04-02-2005 13:36

Citaat:

Manuzhai schreef op 04-02-2005 @ 13:09 :
Ook wel: Cool URIs Don't Change. Mocht je later willen overstappen naar een andere technologie (omdat Python nou eenmaal veel geiler is dan PHP, bijvoorbeeld), dan wil je daar niet al je URIs op aanpassen.
Ja dan zijn mijn URLs toch juist neutraal en technologie-onafhankelijk? Bovendien vind ik het vele malen mooier en netter. Bovendien komt het de veiligheid van je scripts ten goede als mensen geen directe toegang tot de webspace hebben, en direct scripts aan kunnen roepen etc.

Enlightenment 04-02-2005 14:26

Citaat:

Jordi schreef op 04-02-2005 @ 11:35 :
Dus jij hebt zoiets als deze regel:
RewriteRule !((image\.php)|\.(gif|jpg|png|css|ico|xml|js))$ index.php

Neuh, ik zei *alles*, dus:
Code:

RewriteEngine on
RewriteRule ^.*$ /www/dsm/dsm-master.php

;)
Citaat:

En dan staat in je index.php iets als:
Zoiets als:

- Static redirects
- Image handler
- File handler
- Dynamic redirects

Dat laatste zijn dus pagina's die in de database staan, volkomen SQL en dus geen aparte .php voor dus. Maar mijn CMS is best uitgebreid, bij jou kan het idd een stuk simpeler.

Manuzhai 04-02-2005 15:07

Citaat:

Enlightenment schreef op 04-02-2005 @ 14:36 :
Ja dan zijn mijn URLs toch juist neutraal en technologie-onafhankelijk?
Ik was het ook met je eens aan het zijn. :P

Overigens ben ik wel van mening dat het mooier is om in ieder geval binary data (die niet dynamisch gegenereerd wordt) niet via PHP te serveren, ook ivm performance en caching.

Triloxigen 04-02-2005 15:20

Citaat:

Manuzhai schreef op 04-02-2005 @ 16:07 :
Ik was het ook met je eens aan het zijn. :P

Overigens ben ik wel van mening dat het mooier is om in ieder geval binary data (die niet dynamisch gegenereerd wordt) niet via PHP te serveren, ook ivm performance en caching.

Maar hoe bepaal je dat iets ECHT dynamisch is..
Op een website staan veel texten die op zich ook best statisch zijn, maar ook wel heel af ent oe kunnen veranderen...

Wanneer vind je iets dynamisch? Hoe vaak moet het veranderen?

Ik maak de layouts (templates) altijd statisch, alleen de content erin is dynamisch (meestal database).

Enlightenment 04-02-2005 16:09

Citaat:

Manuzhai schreef op 04-02-2005 @ 16:07 :
Ik was het ook met je eens aan het zijn. :P
Oh oke. :)
Citaat:

Overigens ben ik wel van mening dat het mooier is om in ieder geval binary data (die niet dynamisch gegenereerd wordt) niet via PHP te serveren, ook ivm performance en caching.
Performance zou kunnen (scheelt dat zoveel dan? valt toch wel mee?). Maar images, files en zelfs dynamisch gegenereerde pagina's zijn volkomen gecached hoor. Bij 2e view van plaatje stuurt server netjes Not Modified terug, ook voor stylesheets en files.

Enlightenment 04-02-2005 16:11

Citaat:

********** schreef op 04-02-2005 @ 16:20 :
Wanneer vind je iets dynamisch? Hoe vaak moet het veranderen?
Als we mijn site als voorbeeld nemen: een nieuwspost b.v., daat is een last edit datum voor de nieuwspost zelf en een laatste reactie. dat kun je als caching nemen. Nodes e.d. worden ook op die manier gecached, tenminste als de client daarom vraag (if-not-modified). Op mijn site heb ik dat laatste nu uitgeschakeld omdat hij dan dingen zoals forum posts etc. niet zou 'pakken', maar je zou dat kunnen opvangen door 5 minuten cache aan te houden, ofzo.

Gimme more beer 04-02-2005 18:37

Citaat:

Enlightenment schreef op 04-02-2005 @ 02:48 :
Kijk eens naar mijn site, en zie de mooie URLs. Dát is de meerwaarde, en deze is voor mij heilig. :)
Jah, je servertje ligt eraf, maar ik heb je site wel eens bekeken :)

Ik zie de meerwaarde nog steeds niet, maar ieder zijn of haar ding, natuurlijk... Als ik tegenwoordig een site maak werkt het altijd met een ?page=... en ik zou niet meer anders willen. Mooie 404 error in het design van m'n eigen pagina waar het niet werkt en je bent klaar.

Manuzhai 04-02-2005 19:03

Citaat:

Enlightenment schreef op 04-02-2005 @ 17:09 :
Performance zou kunnen (scheelt dat zoveel dan? valt toch wel mee?). Maar images, files en zelfs dynamisch gegenereerde pagina's zijn volkomen gecached hoor. Bij 2e view van plaatje stuurt server netjes Not Modified terug, ook voor stylesheets en files.
En ETag? Als je het goed doet heb je allebei (en je stuurt natuurlijk braaf een 304 als dat gepast is, maar dat doe je geloof ik al).


Alle tijden zijn GMT +1. Het is nu 15:32.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.