域映射与虚拟主机如何防止看到文件夹树



我的意思是,当域映射,将多个域指向一个ip地址时,有一个主文件夹,这里的/var/www/html,这里放置的索引文件将是直接按ip地址或相当于/var/www/html/index.phpprimarysite.com搜索服务器时出现的文件。

当我搜索secondarysite.com时,这很可能由/var/www/html/secondarysite表示,它不会显示在url栏中,而显示的是搜索到的secondsarysite.com。但你可以通过键入primarysite.com/secondarysite找到那个文件夹,所以我不想看到它。

那是通过URL重写完成的,对吗?

这是否可以是永久性的,以便除非域名直接要求,否则不会显示同一ip上的文件夹结构/多个域?

每个站点有一个目录更干净。(例如,您可以拥有干净的站点范围备份)

你应该把你的主域vhost移到/var/www/html/primarysite.com解决这个问题吗?

如果你真的想把你的主站点保留为/var/www/html,你必须编辑你的"primary vhost",/etc/apache2/sites available/primarysite.conf(或左右),并添加:

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

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

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

如果我没看错你的问题,你是在试图让两个vHosts在文件夹结构中无法相互访问吗?重写/.htaccess可能是实现这一目标的最佳方法。一种更干净/更安全的方法是,您可以使两个文件夹不在彼此内部(例如/var/www/primarysite/public_html/var/www/ssecondarysite/public_html

尝试将其添加到您的apache-config:中

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

更多信息请点击此处。希望这能有所帮助!

最新更新