使用虚拟主机进行域映射如何防止查看文件夹树?

时间:2015-12-03 15:17:26

标签: apache

我的意思是,当域映射时,将多个域指向一个ip-address,有一个主文件夹,/var/www/html这里放置的索引文件将是直接搜索服务器时出现的内容通过ip-address或primarysite.com,相当于/var/www/html/index.php

当我搜索secondarysite.com时,这很可能由/var/www/html/secondarysite表示,它不显示在网址栏中,显示的内容为secondsarysite.com。但是你可以通过输入primarysite.com/secondarysite来找到该文件夹​​,所以我不想看到它。

这是通过URL重写完成的吗?

这可以是永久性的,以便不在同一个IP上显示文件夹结构/多个域,除非直接通过域名请求吗?

2 个答案:

答案 0 :(得分:0)

每个站点有一个目录更清晰。 (例如,您可以使用清理站点范围的备份)

您应该将主域vhost移动到/var/www/html/primarysite.com解决此问题吗?

如果你真的想把你的主站点保留为/ var / www / html,你必须编辑你的“主要虚拟主机”,/ etc / apache2 / sites-available / promimaysite.conf(或左右),并添加:< / p>

<Directory /secondarysite/>
    deny from all
</Directory>

(也许你必须放入文件夹的绝对路径)

我真的不推荐这种方法,因为每次在服务器上添加网站时都必须记住这一点。将每个站点移动到自己的文件夹只能解决这个问题。

答案 1 :(得分:0)

如果我正确地阅读了您的问题,您正试图制作2个vHosts,文件夹结构中彼此无法访问?重写/ .htaccess可能是实现此目标的最佳方法。更清洁/更安全的方法是你可以让两个文件夹不在彼此之内(例如 / var / www / primarysite / public_html / var / www / secondarysite / public_html )并使用apache配置为这些目录设置它们。

尝试将此添加到您的apache配置:

<VirtualHost *:80>
DocumentRoot /var/www/primarysite/public_html
ServerName primarysite.com
# Other configs
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/secondarysite/public_html
ServerName secondarysite.com
# Other configs
</VirtualHost>

更多信息herehere。希望这有帮助!