2011-01-26 9 views
5

Me gustaría evitar el acceso directo a url en algunos directorios seleccionados. Pero luego haga que algunos archivos dentro de los directorios elegidos sean accesibles para el acceso directo a la url. Tengo problemas para escribir la parte de coincidencia de archivos <> para permitir el acceso a los archivos .php dentro del directorio "xml /". Quiero incluir parte de la "ruta" en la directiva filesmatch, en lugar de crear directivas separadas < directorymatch> para cada directorio en el que quiero que estén disponibles ciertos archivos, pero no funciona ... funciona si elimino el "/xml/"y poner <FilesMatch "\.(php)$">apache filesmatch directive help. Desea incluir el "camino/a/archivo" pero no funciona bien

En mi httpd.conf tengo un directorio virtual configurado. Dentro del directorio virtual agregué lo siguiente:

<DirectoryMatch "^/data/servers/dev.site.com/web/administrator/(includes|xml|css|javascript|stylesheet|cache|classes|acco 
unt_files)"> 
     AddType application/x-httpd-php .php .html .htm 
     Options none 
     AllowOverride All 
     Order Deny,Allow 
     Deny from all 


     #Target all files in "xml/" directory that end in ".php" 
     <FilesMatch "/xml/\.(php)"> 
       AddType application/x-httpd-php .php 
       Order Allow,Deny 
       Allow from all 
     </FilesMatch> 

</DirectoryMatch> 

¿Alguien sabe cómo debo escribir esto?

Gracias por la ayuda.

Respuesta

8

FilesMatch funciona puramente en nombres de archivo: no mira en absoluto la parte de la ruta, por lo que nunca obtendrá un '/ xml /' en un nombre de archivo en el bloque FilesMatch. Es por eso que hay DirectoryMatch arriba. Haga coincidir el directorio allí, luego haga coincidir los nombres de los archivos dentro del dirmatch.

+0

ah, gracias por señalar eso – Ronedog

Cuestiones relacionadas