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

Apache 虚拟主机的域映射如何防止看到文件夹树?,apache,Apache,我的意思是,当域映射,将多个域指向一个ip地址时,有一个主文件夹,/var/www/html此处放置的索引文件将是直接通过ip地址或primarysite.com搜索服务器时出现的,这相当于/var/www/html/index.php 当我搜索secondarysite.com时,这很可能由/var/www/html/secondarysite表示,它不显示在url栏中,显示的是搜索到的secondarysite.com。但是你可以通过键入primarysite.com/secondarysi

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

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

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


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

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

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

如果您确实想将主站点保留为/var/www/html,则必须编辑您的“主vhost”、/etc/apache2/sites available/primarysite.conf(或其他),并添加:

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

全盘否定
(可能您必须输入文件夹的绝对路径)


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

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

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

如果您确实想将主站点保留为/var/www/html,则必须编辑您的“主vhost”、/etc/apache2/sites available/primarysite.conf(或其他),并添加:

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

全盘否定
(可能您必须输入文件夹的绝对路径)


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

如果我正确阅读了您的问题,您正在尝试创建两个vhost,它们在文件夹结构中彼此无法访问?Rewrites/.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>

DocumentRoot/var/www/primarysite/public\u html
ServerName primarysite.com
#其他配置
DocumentRoot/var/www/secondarysite/public\u html
ServerName secondarysite.com
#其他配置

更多信息和信息。希望这有帮助

如果我没看错你的问题,你是想让两个vhost在文件夹结构中彼此无法访问?Rewrites/.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>

DocumentRoot/var/www/primarysite/public\u html
ServerName primarysite.com
#其他配置
DocumentRoot/var/www/secondarysite/public\u html
ServerName secondarysite.com
#其他配置
更多信息和信息。希望这有帮助