htaccess在同一台服务器上有多个URL

时间:2016-04-06 19:06:39

标签: apache .htaccess webserver

对于我服务器上的多个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。

有没有办法让它从同一台服务器转移,或者因为它是虚拟主机,我必须输入每个站点名称?

1 个答案:

答案 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时,系统会提示我输入凭据,不再提示输入其他网址。