个人使用. htaccess伪静态技巧分享

修改.htaccess文件

  • 301跳转重定向

<ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} xbbai.site$ [NC]
    RewriteRule ^(.*)$ https://www.xbbai.site/$1 [R=301,L]
</ifmodule> 

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


完成上面的步骤你的子域名应该可以访问了 但你会发现在浏览器上访问 主域名+绑定的域名目录 也可以访问,可这并不是我们想要的 接下来我们完成最后一步;在每一个绑定的目录中 如blog目录中 也增加一个 .htaccess 文件
.htaccess代码如下:

<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteBase /  
#只许绑定的域名访问  
RewriteCond %{HTTP_HOST} !^blog\.xbbai\.site$ [NC]  
RewriteRule (.*) http://blog.xbbai.site/$1 [L,R=301]  
#对绑定目录下与 同名的目录的处理  
RewriteCond %{REQUEST_URI} ^\/blog\/ [NC]  
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite  
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]  
</IfModule> 
二级域名使用.htaccess跳转解析到子目录方法二: 
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?blog.xbbai.site$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /blog/$1
RewriteCond %{HTTP_HOST} ^(www.)?blog.xbbai.site$
RewriteRule ^(/)?$ blog/index.php [L]

转:
	

htaccess url重写实现多个二级域名映射同一个空间

现在手里只有:一个Linux虚拟主机空间 和一个顶级域名 uacool.com

虚拟主机目录结构(其中wwwroot代表web服务器根目录) : wwwroot/ wwwroot/blog wwwroot/bbs

目标实现: 访问blog.uacool.com 自动 访问服务器跟目录下的wwwroot/blog 访问bbs.uacool.com 自动 访问服务器根目录下的wwwroot/bbs 等等N多个二级域名访问同一个虚拟主机空间功能(非跳转)

实现方法: 用.htaccess文件来实现,把写好的.htacess文件放到服务器的根目录下,比如 wwwroot/.htaccess .htaccess文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.uacool.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1
RewriteCond %{HTTP_HOST} ^blog.uacool.com$
RewriteRule ^(/)?$ blog/index.php [L]
  
RewriteCond %{HTTP_HOST} ^it.uacool.com$
RewriteCond %{REQUEST_URI} !^/it/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /it/$1
RewriteCond %{HTTP_HOST} ^it.uacool.com$
RewriteRule ^(/)?$ it/index.php [L]

以上代码为笔记自己Linux虚拟主机服务器上的 .htaccess 文件内容,分别实现了 blog.uacool.com 以及 it.uacool.com 两个二级域名指向一个虚拟主机两个不同目录的功能。 其实工作原理就是利用 urlrewrite URL重写功能。

发表评论 / Comment

用心评论~