Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Apache htaccess mod_rewrite-阻止对目录的访问,除非请求是使用特定主机完成的_Apache_.htaccess - Fatal编程技术网

Apache htaccess mod_rewrite-阻止对目录的访问,除非请求是使用特定主机完成的

Apache htaccess mod_rewrite-阻止对目录的访问,除非请求是使用特定主机完成的,apache,.htaccess,Apache,.htaccess,我搜索过谷歌,但不知道怎么做: 如果请求是在特定主机上完成的,如何阻止对特定目录的访问 让我举个例子。 我有a.com和b.com等地址指向同一文档根目录(即/) 我需要阻止对/sites/private/directory的访问,除非使用a.com发出请求。只有在使用a.com完成请求时,才能访问/sites/private/目录 谢谢。我现在无法测试这一点,但这段代码是从使用setenif窃取和修改的,可能会有帮助: SetEnvIfNoCase Host "a.com" HTTP_MY_H

我搜索过谷歌,但不知道怎么做:

如果请求是在特定主机上完成的,如何阻止对特定目录的访问

让我举个例子。 我有a.comb.com等地址指向同一文档根目录(即/

我需要阻止对/sites/private/directory的访问,除非使用a.com发出请求。只有在使用a.com完成请求时,才能访问/sites/private/目录


谢谢。

我现在无法测试这一点,但这段代码是从使用
setenif
窃取和修改的,可能会有帮助:

SetEnvIfNoCase Host "a.com" HTTP_MY_HAS_HOST
Order Deny,Allow
Deny from All
Allow from env=HTTP_MY_HAS_HOST

您可以使用正则表达式作为主机名。

您的意思是,如果有人单击
a.com
上的链接?或者从
a.com
服务器发出物理请求?在a.com上发出请求。因此,在运行a.com的web服务器上运行一个程序或服务,当该程序发出请求时,它应该通过,而所有其他访问者都不应该通过。是的,对不起,我的语法有点含糊不清。我试图在不使用虚拟主机的情况下构建某种虚拟主机环境(实际上我没有访问权)。我有几个域指向同一台机器和同一个文档根文件夹。我设法使用.htaccess将来自不同域的请求转发到不同的文件夹(无浏览器地址栏更改)。但我不知道如何阻止对这些文件夹的直接访问,例如使用。实际上完全阻止对/sites/directory的访问可以解决问题,但我无法找到不破坏隐藏转发的方法,因此我尝试只允许访问,至少在/sites/It上禁用目录列表。这实际上会解决我遇到的其他一些问题。非常感谢。嗨,先生。需要帮助!请查收