![]() |
[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? |
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?
|
Zijn het andere versies van Apache?
|
Citaat:
Citaat:
|
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. |
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? |
Citaat:
Gewoon de bestand een andere name geven dus RewriteRule ^home/?$ index.php?page=home2.php Ofzo de gebruikers ziet het toch niet |
Citaat:
Ik kan me niet voorstellen dat dit meerwaarde heeft, zeker omdat je constant zit te klooien met de compatibiliteit. |
Citaat:
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. |
Citaat:
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. :) |
Citaat:
RewriteRule !((image\.php)|\.(gif|jpg|png|css|ico|xml|js))$ index.php En dan staat in je index.php iets als: PHP-code:
|
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). |
Citaat:
|
Citaat:
|
Citaat:
Code:
RewriteEngine on Citaat:
- 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. |
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. |
Citaat:
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). |
Citaat:
Citaat:
|
Citaat:
|
Citaat:
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. |
Citaat:
|
Alle tijden zijn GMT +1. Het is nu 15:32. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.