• Apache服务器通过htaccess让域名指向二级目录


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

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

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

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

    在httpd.conf里

    1 <Directory>
    2 
    3     Options Indexes FollowSymLinks
    4 
    5     AllowOverride none
    6 
    7 </Directory>

    把none改成All

    先让解析一个域名

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

    然后创建一个.htaccess的文件

    内容如下:

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

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

     1 <IfModule mod_rewrite.c>  
     2     RewriteEngine On  
     3     RewriteBase /  
     4     #只许绑定的域名访问  
     5     RewriteCond %{HTTP_HOST} !^download.starryheaven.cn$ [NC]  
     6     RewriteRule (.*) http://download.starryheaven.cn/$1 [L,R=301]  
     7     #对绑定目录下与 同名的目录的处理  
     8     RewriteCond %{REQUEST_URI} ^/download/ [NC]  
     9     RewriteCond %{QUERY_STRING} !^(.*)?Rewrite  
    10     RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]  
    11 </IfModule>  

    最后重启下apache就行了:

    service httpd restart
  • 相关阅读:
    《大型网站技术架构》读后感
    质量属性
    课堂作业02
    课堂作业01
    《软件构架实践》读后感06
    《软件构架实践》读后感05
    Storm系列三: Storm消息可靠性保障
    Storm系列二: Storm拓扑设计
    Storm系列一: Storm初步
    网络层协议
  • 原文地址:https://www.cnblogs.com/xingkongyihao/p/8278837.html
Copyright © 2020-2023  润新知