Apache 通过.htaccess让虚拟主机支持多个域名访问各自网站(绑定不同子目录)

首先要检查服务器apache是否开启mod_rewrite 

 

运行phpinfo(),查看apache2handler里的Loaded Modules是否有mod_rewrite ,Linux服务器是默认开启的

如果没有开启的话,在apache的配置文件httpd.conf里找到#LoadModule rewrite_module modules/mod_rewrite.so  把#去掉

Apache 通过.htaccess让虚拟主机支持多个域名访问各自网站(绑定不同子目录)

然后开始检测apache是否支持 ".htaccess"  

在httpd.conf里

<Directory>
    Options Indexes FollowSymLinks
    AllowOverride none
</Directory>

把none改成All

Apache 通过.htaccess让虚拟主机支持多个域名访问各自网站(绑定不同子目录)

 

先让解析一个域名

Apache 通过.htaccess让虚拟主机支持多个域名访问各自网站(绑定不同子目录)

我让download.xxx.cn   指向我主目录下的download目录

 

然后创建一个.htaccess的文件

内容如下:

    RewriteEngine On  
    RewriteBase /  
    # download.starryheaven.cn 到子目录music  
    RewriteCond %{HTTP_HOST} ^download\.starryheaven\.cn$ [NC]  
    RewriteCond %{REQUEST_URI} !^/download/  
    RewriteRule ^(.*)$ download/$1?Rewrite [L,QSA]  
    #可以绑定多个 只需重复上三行代码并更改一下域名、目录名 就好了  


不过这样还可以通过 主域名/download 访问,要想禁止这种的话就需要添加/download下在加一个.htaccess文件,内容如下:

    RewriteEngine On  
    RewriteBase /  
    #只许绑定的域名访问  
    RewriteCond %{HTTP_HOST} !^download\.starryheaven\.cn$ [NC]  
    RewriteRule (.*) http://download.starryheaven.cn/$1 [L,R=301]  
    #对绑定目录下与 同名的目录的处理  
    RewriteCond %{REQUEST_URI} ^\/download\/ [NC]  
    RewriteCond %{QUERY_STRING} !^(.*)?Rewrite  
    RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]  

这样就添加好了一个域名网站,对应一个子目录,可以充分利用虚拟主机空间,或者域名停靠使用。

转载于:https://www.cnblogs.com/xingkongyihao/p/8278837.html

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

使用新浪微博登陆