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

2018-04-16 14:17:38 浏览数 (1)

修改.htaccess文件

  • 301跳转重定向
代码语言:javascript复制
<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代码如下:

代码语言:javascript复制
<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteBase /  
#只许绑定的域名访问  
RewriteCond %{HTTP_HOST} !^blog.xbbai.site$ [NC]  
RewriteRule (.*) https://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跳转解析到子目录方法二:

代码语言:javascript复制
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]
代码语言:javascript复制
转:
	
		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文件内容如下:
		
		
									
										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重写功能。

0 人点赞