Jag skickar ett antal nedladdningsbara filer via en php-fil, men om folk lyckas gissa sökvägarna finns ingenting som hindrar dem från att ladda ner filerna direkt. Kan man med htaccess spärra nedladdning av filer i en katalog men ändå tillåta php-skriptet att läsa filerna? Hur gör man i sådana fall?
Jag placerade en .htaccess-fil med ovanstående innehåll (det första stycket) i mappen det gäller och startade om Apache, men det går fortfarande att ladda ner filerna direkt. Jag kör ju Apache på Windows XP, kan det ha med det att göra?
RED: .htaccess-filen fungerar så långt att den förhindrar listning av filer i mappen, men om man skriver in ett filnamn, typ "foo.zip" så kan man ladda ner den utan problem.
I httpd.conf kan man sätta vad man får göra med en .htaccess fil, antagligen är den satt till att du ite får göra detta.
I din httpd.con och mellan <Directory> </Directory> som pekar på din htdocs katalog finns en rad AllowOverride, ändra den raden så att det står "AllowOverride All" och starta om apachen.
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>
<Directory "C:/Apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Jag lyckades hitta ett par rader som fungerar kanon.
RewriteEngine On
RewriteRule ^upload/.*$ / [R]
Alla url:er som matchar det reguljära uttrycket efter RewriteRule (d.v.s. allt ovanför /upload/ i det här fallet) skickas vidare till / (d.v.s. webbroten). Flaggan [R] betyder "force redirect", men man kan också använda [F] (forbidden) som istället ger en "You do not have permission..."-sida.
Vore det inte ännu smartare att forwarda till nedladdningsfilen så att de laddas ner via ditt PHP-script? Då får både du och den krånglande användaren som ni vill.
Vore det inte ännu smartare att forwarda till nedladdningsfilen så att de laddas ner via ditt PHP-script? Då får både du och den krånglande användaren som ni vill.
Var jag ska omdirigera är inte klart ännu, det var mer principen jag försökte förklara.
258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849