Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php apachefilesmatch指令帮助。希望包括“的;路径/to/file";但是不正常工作_Php_Apache_.htaccess - Fatal编程技术网

Php apachefilesmatch指令帮助。希望包括“的;路径/to/file";但是不正常工作

Php apachefilesmatch指令帮助。希望包括“的;路径/to/file";但是不正常工作,php,apache,.htaccess,Php,Apache,.htaccess,我想阻止对某些选定目录的直接url访问。但是,然后使所选目录中的一些文件可以直接访问url。我在编写部分以允许访问“xml/”目录中的.php文件时遇到了一些问题。我希望在filesmatch指令中包含部分“path”,而不是为每个目录创建单独的指令,我希望某些文件可用,但如果我删除“/xml/”并放入 在我的httpd.conf中设置了一个虚拟目录。在虚拟目录中,我添加了以下内容: <DirectoryMatch "^/data/servers/dev.site.com/web/admi

我想阻止对某些选定目录的直接url访问。但是,然后使所选目录中的一些文件可以直接访问url。我在编写部分以允许访问“xml/”目录中的.php文件时遇到了一些问题。我希望在filesmatch指令中包含部分“path”,而不是为每个目录创建单独的指令,我希望某些文件可用,但如果我删除“/xml/”并放入

在我的httpd.conf中设置了一个虚拟目录。在虚拟目录中,我添加了以下内容:

<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>

AddType应用程序/x-httpd-php.php.html.htm
选项无
允许超越所有
命令拒绝,允许
全盘否定
#以“xml/”目录中以“.php”结尾的所有文件为目标
AddType应用程序/x-httpd-php.php
命令允许,拒绝
通融
有人知道我该怎么写吗


感谢您的帮助。

filematch仅对文件名起作用-它根本不查看路径部分,因此在filematch块中的文件名中永远不会出现“/xml/”。这就是为什么上面有DirectoryMatch。在那里匹配目录,然后在dirmatch中匹配文件名