修改.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代码如下:
代码语言: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重写功能。