我的意思是,当域映射,将多个域指向一个ip地址时,有一个主文件夹,这里的/var/www/html
,这里放置的索引文件将是直接按ip地址或相当于/var/www/html/index.php
的primarysite.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>