修改.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></pre>
完成上面的步骤你的子域名应该可以访问了 但你会发现在浏览器上访问 主域名+绑定的域名目录 也可以访问,可这并不是我们想要的 接下来我们完成最后一步;在每一个绑定的目录中 如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文件内容如下:
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重写功能。
本文作者为Mr.Bai,转载请注明。