Vraag & Antwoord

Servers

Apache dir -> script?

Anoniem
MarkVR
7 antwoorden
  • Ik heb het ooit eens ergens gelezen, maar heb het niet terug kunnen vinden; ik wil een directory linken aan een script (virtuele dir of niet maakt niet uit). Wat ik bedoel is dat als je bv /scriptdir/file.txt opvraagt dat dit geprocessed wordt door bv scriptdir.php die dan die /file.txt als parameter meekrijgt.

    Daarbij komt nog dat ik dit op zowel een Windows als op een Linux bak aan de praat wil krijgen. Volgens mij was het een apache instelling, maar zoals ik al zei heb ik het niet terug kunnen vinden…


    Alvast bedankt!
  • Heb je hier wat aan ?
    http://httpd.apache.org/docs-2.0/mod/mod_mime.html

    Als het om slechts 1 direcory gaat zou je ook een scriptje kunnen maken wat de inhoud van deze dir laat zien en deze index.pl noemen o.i.d.

    in de ref tags dan zoiets als handler.pl?file.ext
  • Het gaat er niet om dat ik een directory laat zien o.i.d., het gaat er om dat de server alle requests naar een bepaalde map (en eventuele submappen) beschouwt als een script-aanroep. Hetzelfde principe als wanneer ik bv /path/script.php/file.txt zou aanroepen, dan zou script.php uitgevoerd worden. Ditzelfde wil ik maar zonder het .php gedeelte zodat het een normale map lijkt, waardoor ik geen extensie kan opgeven om die te koppelen aan PHP.

    AddHandler lijkt misschien een oplossing, maar er staat voorderest niks bij behalve AddHandler cgi-scripts. Ik ga het in ieder geval even proberen….
  • Dat doe je met "MultiViews", check de handleiding van Apache hoe je dit instelt.
  • Nog wat ter aanvulling:

    [code:1:eaf5686b5e]
    list($filename) = explode("/", substr($PATH_INFO, 1));
    [/code:1:eaf5686b5e]

    stop je dus de text achter de / in een variabele (meerdere kan ook natuurlijk, gewoon list($filename, $filename2, …) ervan maken. Dus als je nu naar script/bla gaat, wordt dus script.php uitgevoerd en dan zit "bla" in de variabele $filename (als je tenminste bovenstaande code in script.php zet :wink:).
  • Eindelijk! :grin:

    Tijdje bezig geweest met MultiViews, kreeg niks aan de praat. mod_rewrite geprobeerd, die deed nog veel minder, vraag me niet waarom. Was het helemaal zat, ik denk, wie weet helpt dit:

    [code:1:1b072ad675]
    Alias /fake/ "P:/Apache/Apache/htdocs
    ewrite
    ewrite.php/"
    [/code:1:1b072ad675]


    En jawel, het werkt prima :smile:


  • Maar bij een hostingprovider zal bovenstaande vaak onmogelijk zijn…

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.

Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord