probleem met benaderen van met .htaccess beveiligde directory

Status
Niet open voor verdere reacties.

simson

Gebruiker
Lid geworden
23 okt 2004
Berichten
67
Ik heb een website waar gebruikers documenten op kunnen plaatsen die niet voor iedereen zichtbaar moeten zijn. De directory waar de documenten worden geplaatst heb ik beveiligd m.b.v. .htaccess.

Door gebruik te maken van de PHP-functie readfile() geef ik de betreffende documenten weer. Dit zijn bv Worddocumenten en PDF bestanden. Bij het benaderen van de met .htaccess beveiligde directory krijg ik niet de juiste resultaten. Bij het weergeven van een PDF-bestand krijg ik de foutmelding: 'Het bestand begint niet met %PDF-,' . Bij het weergeven van een Word-document krijg ik een leeg Worddocument te zien.

Indien ik het .htaccess bestand verwijder uit de directory dan worden alle documenten prima weergegeven. Dus het PHP-programma met de readfile functie functioneert prima.

Dezelfde methodiek (htacces en PHP met readfile) heb ik ook toegepast op een andere website die gehost wordt bij een andere provider. Daar werkt het uitstekend.

Bij de provider waar het nu niet lukt hebben ze ook al instellingen moeten wijzigen voordat de .htaccess beveiliging werkte. Voor zo ver ik nu kan zien is er iets aan de serverkant niet goed ingesteld omdat zonder .htaccess het PHP-programma prima werkt. De provider reageert op dit probleem op dit moment zeer terughoudend terwijl ze anders altijd zeer deskundig en snel reageren.

Heeft iemand een idee of het aan een bepaalde instelling aan de hostingskant kan liggen en zo ja welke?
 
Als je readfile() gebruikt, verwijs je dan naar de lokale file, of via het web?

Als je dit doet:
PHP:
readfile( "http://mijnsite.nl/map/file.doc" );

Dan loopt namelijk je readfile() tegen .htaccess aan en krijgt hij geen data terug.

Als je het zo doet:
PHP:
readfile( "/map/file.doc" );

Dan loopt readfile() niet tegen de .htaccess aan en werkt het wel.

Daar zou het mee te maken kunnen hebben. Je kunt voor de zekerheid proberen de return value van readfile() terug te geven als gewone string ipv document, om te zien of hij iets meldt over "geen toegang"
 
Frats, dank voor je reactie.

Ik deed het inderdaad via
PHP:
readfile( "http://mijnsite.nl/map/file.doc" );

dit kwam omdat het via
PHP:
readfile( "/map/file.doc" );

ook zonder .htaccess niet werkte, terwijl ik zeker weet dat die verwijzing goed is.

Ik heb nu ontdekt dat als ik het doe via een lokale verwijzing met ../ zoals
PHP:
readfile( "../map/file.doc" );

dan gaat het goed zonder en met .htaccess.

Ik heb geen idee waarom het met de rootverwijzing (/map) niet goed gaat, maar daar zal ik de provider eens naar gaan vragen.
 
Waarschijnlijk staat de root ingesteld op een andere map dan je verwacht ofzo :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan