mode rewrite vraagje
http://www.website.nl/default.php?page=inc_article&id=04602&ut=dit_is_de_variable_titel
zou ik graag met mod rewrite willen omzetten naar
http://www.website.nl/04602/dit_is_de_variable_titel.html
Nu heb ik zelf niet de mogelijkheid om mijn .htacess bestand op de server te beheren. Dus moet ik mijn server beheerder vragen dit te doen.
Ni dacht ik dit zo te moeten maar ik kan het niet testen :-(
Options +FollowSymLinks
RewriteEngine on
RewriteRule /(.*)/(.*)\.htm$ /default.php?page=inc_article$1&id=$2&ut=$3
Maar ik kan het dus niet testen :-(
Gewijzigd op 01/01/1970 01:00:00 door Mar kla
- Je eindigt met .htm (lett) maar je link eindigt op .html
- Je hebt niet gezegd dat hij moet beginnen met een /, deze expressie zal dus ook /a/b/c/de/f.html matchen. (^ kan je gebruiken om het begin aan te geven)
- punt matcht alle karakters, ook slashes en andere vage dingen. Voor id hoef je alleen maar nummers (\d) te matchen, en die daarachter mag idd alles zijn. Maar ook slashes? (probeer anders eens [^/], dat betekent alles behalve slashes)
- inc_article$1? Waar is die $1 voor. $1 is het gematchte id, en $2 de ut. $3 bestaat niet (je hebt immers maar 2 plekken waar je ( en ) gebruikt)
- Je kan (moet?) aan het einde van je regel nog opgeven wat voor eigenschappen de regel heeft, de flags voor de regel. Bijvoorbeeld L voor laatste regel, of QSA zodat de query_strings gecombineerd worden. (zodat je ..._titel.html?search=4 omgeschreven wordt naar default.php?page=inc_article&id=0123&ut=..._titel&search=4) Flags staan tussen [ en ]-tjes
- Je regel zal op alles toegepast worden, ook plaatjes en stylesheets, omdat je niet eerst controleert of het bestand dat wordt aangeroepen al bestaat. Zet net onder RewriteEngie On deze twee regels:
Als je zelf niet kan testen, misschien is het dan wel makkelijker om nu een regel te maken die alle niet-bestaande links herschrijft naar default.php, waar je in default.php dan weer met PHP functies gaat proberen de informatie uit de URL te halen. De hele aanroep-url zit wel ergens in $_SERVER. Als je de rewrite-rule dan eenmaal goed hebt, kan je zelf default.php bijschaven totdat het helemaal goed werkt.
(Even tussendoor: host je toevallig op een windows server? Geen htaccess, mod_rewrite moeten instellen door de admin, default.php ipv index.php, het klinkt als IIS. Zo ja, dan heb je denk ik een andere handleiding nodig, want Options +FollowSymLinks ondersteund IIS niet zo)
De website draait op een Unbutu server maar sinds de website vorige week gehackt is geweest. heeft de beheerder behoorlijk wat dingen dicht gezet.
Het doel van de link rewriten is SEO
Lokaal (WAMP) draai ik met easyphp maar daar krijg ik de mod rewrite en .htaccess niet aan de praat.
Van de beheerder heb ik naast de live url een test url op de server gekregen maar ja als ik geen .htaccess kan bewerken kan ik voor dit doel niets mee.
Maar ik ga aan de slag met je verkorte tutorial :-)
Mod-rewrite niet meer ondersteunen is wel een beetje het laatste wat ik zou doen bij hackers. -> Met of zonder rewrite, is het geen probleem te hacken wanneer een script brak is.
Maargoed, leuk is dat zo'n systeembeheerder.
inderdaad Hacken via .htaccess is lastig ........maar niet onmogelijk!
Het gaat niet alleen om de .htacces maar om een vooralsnog onbekende methode die men gebruikt heeft. Zoals je weet kun je met .htacces ook toegang (access) rechten regelen en lijkt het mij dus tijdelijk raadzaam alles dicht te gooien en te kijken hoe die hacker is binnengekomen.
Het mode rewite verhaal staat volledig los van de hack problematiek. Behalve dan dat ik mod rewrite wil gaan gebruiken en voorzover ik weet doe dat via de .htaccess.
Overigens een uitstekende beheerder die direct voor je klaar staat als er problemen zijn, al meer dan 20 jaar in het vak h e e l veel praktijk ervaring heeft, op allerlei nivo's gecertificeerd en gediplomeerd is en weet waar hij over praat. Jou opmerking 'lekkere beheerder' is een beetje voorbarig als je niet weet wat de exacte omstandigheden zijn.