Apache服務器經過htaccess讓域名指向二級目錄

首先要檢查服務器apache是否開啓mod_rewrite php

 

運行phpinfo(),查看apache2handler裏的Loaded Modules是否有mod_rewrite ,Linux服務器是默認開啓的apache

若是沒有開啓的話,在apache的配置文件httpd.conf裏找到#LoadModule rewrite_module modules/mod_rewrite.so  把#去掉服務器

 

 而後開始檢測apache是否支持 ".htaccess"  ide

在httpd.conf裏spa

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

 

把none改爲Allrest

 

 

先讓解析一個域名code

我讓download.xxx.cn   指向我主目錄下的download目錄blog

 

而後建立一個.htaccess的文件string

內容以下:域名

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
相關文章
相關標籤/搜索