[htaccess] php script toestaan, rest weigeren

Status
Niet open voor verdere reacties.

That Guy

Meubilair
Lid geworden
28 nov 2006
Berichten
5.010
Yow,

Ik probeer al enkele uren mn htacces goed te kijgen. Ik ben opzoek naar dit:
Iedereen wordt geweigerd om de 'HASH' folders te bekijken en om de .split-bestanden op te vragen,
tenzij je dl.php bent. Dan mag je het bestand 'zien'. (rechten hebben om t te lezen, ofwel, 'allow')​
het gaat even om deze structuur:
Code:
+--private
   +-- HASHHASHHASHHASH1
      +--1.split
      +--2.split
   +-- HASHHASHHASHHASH2
      +--1.split
      +--2.split
   +-- HASHHASHHASHHASHn
      +--1.split
      +--2.split

   +--dl.php
Ik heb deze al geprobeerd (op het moment staat het allemaal in vergras-studios.com/private/ dus):
Code:
IndexIgnore */*

<Files .split>
order deny,allow
deny from all
allow from vegras-studios.com
</Files>
dit ignore werkt wel, maar verder doet-ie niet wat t moet doen. Ook deze:
Code:
<Files ~ "^.*\.([Ss][Pp][Ll][Ii][Tt])">
 Order allow,deny
 Deny from all
 Satisfy all
</Files>
blokkeerde (onzichtbaar maken) de .split bestandjes, maar ik wil dat het php doorlaat... hoe?!


Alvast bedankt!
 
Laatst bewerkt:
mischien is mn vraag een beetje onduidelijk, rephrase:

Ik zoek htacces-code welke het volgende bereikt: niemand mag toegang tot folders of '.split'-bestanden, behalve als je 'dl.php' bent. Daarbij moet 'dl.php' wel toegankelijk zijn voor iedereen.


:thumb:
 
Ik ben niet zo vertrouwd met .htaccess, maar aangezien je aan files een soort parameter opgeeft die filtert, kan je mss gewoon meerdere Files-secties aanmaken ?
Ik vermoed dat de laatst gedefiniëerde de voorgaande dan overschrijft.
Dus iets als:
Code:
IndexIgnore */*

<Files .split>
order deny,allow
deny from all
allow from vegras-studios.com
</Files>

<Files .php>
order allow,deny
allow from all
</Files>
 
Code:
IndexIgnore */*

<Files .split>
order deny,allow
deny from all
allow from vegras-studios.com
</Files>
dit ignore werkt wel, maar verder doet-ie niet wat t moet doen.

ff uit mijn hoofd hoor.
Ik gok dat niemand toegang heeft tot de split files

doe eens de order omdraaien

aangezien iedereen tot de deny rule behoort hoeft hij verder niet te zoeken. ook al kom je van vegrasstudio af (alhoewel ik ook niet helemaal zeker ben van die instructie
dus misschien volstaat het door de volgende code te gebruiken:

Code:
IndexIgnore */*

<Files .split>
order allow,deny
deny from all
allow from vegras-studios.com
</Files>
 
Hm, bij beide werkt het niet. De index en folders worden verborgen (IndexIgnore */* werkt dus wel) maar kan nogsteeds direct de split-bestanden direct benaderen...

Ik denk dat het inderdaad komt door de regel allow from vegras-studios.com. Ik hoopte dat er mischien iets was als 'allow from dl.php' oid, maar heb niets kunnen vinden... Ik ga even verder surfen. Als iemand iets vind, graag natuurlijk.

:thumb:
 
nope, alles is dan gewoon te bereiken. Het rare is dat t dus helemaal niet schijnt te werken.



In ieder geval, ik heb even terug gegrepen op een oud stukje:
Code:
<Files ~ "^.*\.([Ss][Pp][Ll][Ii][Tt])">
 Order allow,deny
 Deny from all
 Allow from 127.0.0.1
</Files>
(klik op de links voor een voorbeeld van die link!) Dit blokkeert alle .split bestanden, en laat ze ook niet zien in de dir-overview. Het bestand is nu dus forbidden, maar via dl.php?*query* kan het dan dus ook niet. Als er staat: "php: file doesn't exist: ...." dan krijg ik dus een 'false' bij de php-functie is_readable. (overgens ook bij file_exists overgens)


:confused:
 
Laatst bewerkt:
Het stukje dat je zonet postte lijkt me ook niet logisch: je geeft op dat je als volgorde eerst allow en dan deny gaat opgeven. En dan geef je eerst je deny op en daarna pas de allow.

Kom je dichter bij je doel wanneer je die 2 regels van plaats wisselt naar dit ?
Code:
<Files ~ "^.*\.([Ss][Pp][Ll][Ii][Tt])">
 Order allow,deny
 Allow from 127.0.0.1
 Deny from all
</Files>

.htaccess is zo een van de dingen die ik ook 'ooit' nog eens zou moeten leren :p
 
hm, nee:
dir-overview - o.k.
bestand - nope...
dl.php?*query* - nope, dl.php kan er niet bij.


.htaccess is zo een van de dingen die ik ook 'ooit' nog eens zou moeten leren :p
same here, naast regexp enzo :p



[edit]
ik vond op deze site de volgende voorbeelden:
This .htaccess rewrite example invisibly rewrites requests for all Adobe pdf files to be handled by /cgi-bin/pdf-script.php

RewriteRule ^(.+)\.pdf$ /cgi-bin/pdf-script.php?file=$1.pdf [L,NC,QSA]
This allows access to all files by php fopen, but denies anyone else.

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^.+$ [NC]
RewriteRule .* - [F,L]
en
Deny access to anything in a subfolder except php fopen
This can be very handy if you want to serve media files or special downloads but only through a php proxy script.

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)/.*\ HTTP [NC]
RewriteRule .* - [F,L]

Vooral die laatste leek me superb voor mijn probleem, maar het werkte niet en ik heb geen idee hoe ik m moet aanpassen :p

Heb nogsteeds dezelfde folder-opbouw:
Code:
private
   |--- .htaccess
   |--- dl.php
   |
   |--- HASH37ZJHSJK
   |   |--- 1.split
   |   `--- 2.split
   |
   `--- HASH483qHJDS
       |--- 1.split
       `--- 2.split



Iemand?[/edit]
 
Laatst bewerkt:
Deze's opgelost, met de volgende htaccess:
Code:
<FilesMatch ".\.split$">
  Deny from all
</FilesMatch>

:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan