htaccess 在具有多个 URL 的同一台服务器上
htaccess on same server with multiple URLs
是否可以在我的服务器上对多个 URL 仅进行一次 .htaccess 提示?
基本上,我有一个网络服务器目录:
/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,它会提示我进行身份验证,然后如果我单击 link,它会再次提示我进行 main.myowndomain.com。
有没有办法让它转移过来,因为它是同一台服务器,或者因为它是虚拟主机,我必须为每个站点名称输入?
我能够通过在每个虚拟主机部分添加重定向来实现我想要的结果。
<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 时,系统会提示我输入凭据,而不会再提示我输入其他 URL。
是否可以在我的服务器上对多个 URL 仅进行一次 .htaccess 提示?
基本上,我有一个网络服务器目录:
/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,它会提示我进行身份验证,然后如果我单击 link,它会再次提示我进行 main.myowndomain.com。
有没有办法让它转移过来,因为它是同一台服务器,或者因为它是虚拟主机,我必须为每个站点名称输入?
我能够通过在每个虚拟主机部分添加重定向来实现我想要的结果。
<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 时,系统会提示我输入凭据,而不会再提示我输入其他 URL。