![]() |
[PHP] RewriteEngin
Ik wil voor mijn website gebruik gaan maken van de RewriteEngin om wat nettere URL's te creëren.
Nu heb ik het volgende opgedoken op PHPfreakz: .htaccess PHP-code:
PHP-code:
Code:
dev http://www.dynamicdreams.nl/dev/fotoboek/1/ (bijvoorbeeld). Dan zegt het script Not Found The requested URL was not found on this server. Wat doe ik fout? |
Vind je het niet véééél stoerder om *alle* requests door een master php file te behandelen? ;)
www.dynamicdreams/dit/kun/je/zelf/bedenken en altijd gaat hij zelf naar een php file, dus als jij adv je database de betreffende url/node niet kunt vinden, display je een mooie 404 in de stijl van je website. Woei! |
Citaat:
Hoe pas ik de code nou aan zodat het wél werkt? |
Dan moet je regex goed werken, en daar heb ik absoluut geen kennis van. Regular Expressions vind ik eng. :p
|
Citaat:
Hoe pas jij het dan toe op je website? |
Citaat:
Apache kan die URL niet verwerken omdat hij naar een subdir zoekt. Is een apache-config kwestie dus, misschien op te lossen met een .htaccess ofzo. |
Citaat:
Code:
<VirtualHost *> |
Werkt die code ook zo op mijn site? Ik snap er de ballen van. :o
|
Die code hoort in je httpd.conf van Apache ;)
Indien je daar niet bij kunt kun je het in een .htaccess plaatsen, alhoewel dat wel inefficienter is gezien de technische constructie die daarbij gebruikt wordt. Maar het werkt dan wel. De regexp rewriterule die ik gebruik, stuurt *ALLE* requests door naar één PHP file, in dit geval dsm-master.php aan de hand van de URL ($url = $_SERVER['REQUEST_URI']) kun je dan de geschikte node erbij vinden. Zie ook: http://forum.scholieren.com/showthre...13#post9110813 |
Ik krijg dat stomme ding nog steeds niet aan de praat. Wat ik nu wil:
Dit intypen: http://www.space.nu/films/44/ Dit bestaat niet echt, dus deze url moet ie rewriten naar: http://www.space.nu/index.php?mid=44 Ik krijg echt niets voor elkaar, hoe gaat het nou wel werken? |
Dat moet je ook niet willen. Je moet het PHP script aanpassen om gebruik te maken van de URL die gebruikt werd om het script aan te roepen.
|
Je hebt helemaal geen mod_rewrite nodig...
Ik gebruik in een script (nieuwsarchief) dit: PHP-code:
http://www.site.com/archive.php/november/2003 Werkt prima. :) |
waarom RewriteEngine als je net zo makkelijk multiviews kan gebruiken ?
|
Citaat:
|
MultiViews is dat wat M@rco ook bedoelt. Het komt erop neer dat je path niet ophoudt bij het bestand dat de request moet verwerken, maar dat je daarna gewoon doorgaat. In het script kan je dan die rest van dat path opvragen en aan de hand daarvan actie ondernemen. Als je bovendien de extensie van het bestand weghaalt kunnen mensen niet meer zo makkelijk zien dat je PHP gebruikt hebt.
|
Citaat:
|
Citaat:
Is dit misschien de "Virtual directory" feature? |
Citaat:
Dit zou ook al moeten werken met alleen MultiViews aan. Ik ben er nog steeds niet achter hoe het precies zit (heb er zelf ook een paar problemen mee op bepaalde servers), maar je hebt mod_rewrite hier in ieder geval niet voor nodig. |
Citaat:
|
Citaat:
|
Citaat:
|
Martin, zet dan eens Options All MultiViews in je .htaccess.
Vervolgens kijken wat er gebeurt als je index.php/slaap/ opvraagt. |
Citaat:
Je hebt er niets speciaals voor nodig, alleen Apache; het maakt gebruik van de zogenaamde "Look Back" feature, Zie ook hier: http://www.sitepoint.com/article/485 |
Citaat:
|
Citaat:
|
Citaat:
|
|
Voor het weghalen van de index.php kan je denk ik het best de RewriteRule van Enlightenment gebruiken.
|
Code:
Options +MultiViews |
Excuses als het al gezegd is, lang weekend achter de rug..
Maar ondersteund je host dit wel? :) |
Citaat:
|
Citaat:
|
Alle tijden zijn GMT +1. Het is nu 05:32. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.