我有3个站点需要在Web服务器上托pipe(从Ubuntu 12.04上运行的repo上的apache2)。 他们每个都在自己的子目录内/var/www/
我希望apache只能在URL中给出目录名,而不是为/var/www/目录提供相关目录中的文件。
例如: http://1.2.3.4/site1/ : http://1.2.3.4/site1/应该从/var/www/site1/index.html工作并提供索引,但是http://1.2.3.4/不应该提供任何服务。
目前,我无法获得指向该目录的url。 我可以通过http://1.2.3.4/获得/var/www/ (包括/var/www/site2/secretstuff/ )中的所有内容,或者我可以获取根目录http://1.2.3.4/其中一个子目录( /var/www/site1/ )。 这是不可接受的网站1需要索引启用,但其他人不能。
我只想让site1的configuration只响应表单http://1.2.3.4/site1/*请求,而不处理forms为http://1.2.3.4/请求
我没有设置域名,所以我不能使用子域名。
只需要简单的修复:在/var/www一个空白的index.html :
touch /var/www/index.html
到顶层会导致一个空白页面。
很难告诉你需要什么,也许你需要发布httpd.conf?
你想要的url去404? 也许试试
RedirectMatch 404 ^ / $
另一方面,这可能有助于:
http://httpd.apache.org/docs/2.2/urlmapping.html#documentroot
我需要用Alias / site1 / var / www / site1 /
如果您可以更改IPTABLES设置:
iptables -I INPUT -d <server IP> -p tcp --dport 80 -m string --to 70 \ --algo bm --string 'GET / HTTP' -j DROP
这不会终止/文件的请求,但直接在/不允许访问根目录的任何内容。
或者,你可以为你想要工作的页面创build一对允许的规则,并且可以阻止根目录:
iptables -I INPUT -d <server IP> -p tcp --dport 80 -m string --to 70 \ --algo bm --string 'GET /' -j DROP iptables -I INPUT -d <server IP> -p tcp --dport 80 -m string --to 70 \ --algo bm --string 'GET /site1' -j ACCEPT iptables -I INPUT -d <server IP> -p tcp --dport 80 -m string --to 70 \ --algo bm --string 'GET /site2' -j ACCEPT iptables -I INPUT -d <server IP> -p tcp --dport 80 -m string --to 70 \ --algo bm --string 'GET /site3' -j ACCEPT