对于我服务器上的多个URL,是否只能提示.htaccess一次?
基本上,我有一个Web服务器目录:
/var/www/html/MainSite/.htaccess
哪个可通过http://main.myowndomain.com/
浏览
然后我有子直接
/var/www/html/MainSite/SubSite1/index.html
/var/www/html/MainSite/SubSite2/index.html
/var/www/html/MainSite/SubSite3/index.html
我的网络界面具有以下eth.x设置
eth0......inet address 1.1.1.1
eth0:1....inet address 1.1.1.2
eth0:2....inet address 1.1.1.3
eth0:3....inet address 1.1.1.4
我的httpd.conf文件有
<VirtualHost 1.1.1.2:80>
ServerAdmin admin@myowndomain.com
DocumentRoot /var/www/html/MainSite1
ServerName subsite1.myowndomain.com
</VirtualHost>
<VirtualHost 1.1.1.3:80>
ServerAdmin admin@myowndomain.com
DocumentRoot /var/www/html/MainSite/SubSite2
ServerName subsite2.myowndomain.com
</VirtualHost>
<VirtualHost 1.1.1.4:80>
ServerAdmin admin@myowndomain.com
DocumentRoot /var/www/html/MainSite/SubSite3
ServerName subsite3.myowndomain.com
</VirtualHost>
我的.htaccess是基本身份验证
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
Options Indexes
AuthUserFile /var/www/.htpasswd
#AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
如果我浏览到subsite1.myowndomain.com它会提示我进行身份验证,那么如果我点击某个链接,它会再次提示我输入main.myowndomain.com。
有没有办法让它从同一台服务器转移,或者因为它是虚拟主机,我必须输入每个站点名称?
答案 0 :(得分:0)
我能够通过在每个虚拟主机部分添加重定向来实现我想要的结果。
<VirtualHost 1.1.1.1:80>
ServerAdmin admin@myowndomain.com
DocumentRoot /var/www/html/MainSite/Subsite1
ServerName main.myowndomain.com
Redirect 301 / http://mainsite.myowndomain.com/MainSite/Subsite1
</VirtualHost>
<VirtualHost 1.1.1.2:80>
ServerAdmin admin@myowndomain.com
DocumentRoot /var/www/html/MainSite/SubSite2
ServerName subsite1.myowndomain.com
Redirect 301 / http://mainsite.myowndomain.com/MainSite/Subsite2
</VirtualHost>
<VirtualHost 1.1.1.3:80>
ServerAdmin admin@myowndomain.com
DocumentRoot /var/www/html/MainSite/SubSite3
ServerName subsite2.myowndomain.com
Redirect 301 / http://mainsite.myowndomain.com/MainSite/Subsite3
</VirtualHost>
现在,当我访问subsite2.myowndomain.com时,系统会提示我输入凭据,不再提示输入其他网址。