Apache限制域

我想configurationApache(2.2)来限制用户可以访问的名,例如,如果apache FQDN是myapache.myfunnydomain.com,那么apache将只允许请求资源在.myfunnydomain.com(或任何域我configuration为合法)和拒绝所有其他请求(redirect到错误页面)

用例是:

  1. 用户尝试访问受限资源
  2. 我使用OpenAm / OpenAm policyAgent进行身份validation(PolicyAgent安装为监听所有stream量的Apache模块)
  3. OpenAm policyAgent模块拦截此并将用户redirect到login页面
  4. 此login页面的url格式为www.loginpage.com/?goto=originallyrequestedresource.com
  5. 一旦用户按下login,这个POST就会进入并行的OpenAM系统
  6. 一旦OpenAM进行身份validation,使用此转到用户redirect到'goto'的值(使用302)
  7. 我想确保用户永远不会被redirect到除我允许的域以外的域

比如有人攻击系统并设法改变goto的值,那么apache将不允许这个请求成功

创build虚拟主机..虚拟主机的顺序..第一个虚拟主机服务,如果没有一个虚拟主机相匹配..

看看http://httpd.apache.org/docs/2.2/vhosts/name-based.html

创造类似的东西

NameVirtualHost *:80 <VirtualHost *:80> ServerName dummy.domain.tld ServerAlias domain.tld *.domain.tld DocumentRoot /www/domain/dummy </VirtualHost> <VirtualHost *:80> ServerName www.domain.tld DocumentRoot /www/otherdomain </VirtualHost> 

让第一个虚拟主机成为一个全部虚拟主机(如果被访问,无论请求是否redirect到错误页面)

那么随后的虚拟主机可以是特定的虚拟主机回应特定的FQDN …

在上面的例子中,所有不匹配“wwww.domain.tld”的请求将被第一个虚拟主机保存….

您可能还想从http://httpd.apache.org/docs/2.2/mod/core.html#serveralias上的serverAlias指令中读&#x53D6;

– 希望这可以帮助…