实现万网二级域名绑定二级目录

之前用万网主机想用二级域名绑定二级目录,开始想了两种个方法,一种是直接跳转目录,这种情况下会造成调用的文件不加载,因为不在同一级目录下,但是修改为绝对路径又觉得不合适,这不应该是最好的解决方案,于是放弃了这种做法,还有另一种做法就是301重定向,这种到是没啥问题,不过重定向的是二级域名定向到二级目录,与开始想的需求不吻合了,之后这事就不了了之了,今天实在需要这个功能,仔细研究了下,还是要用第一种方法,可以不用网址绝对路径,用虚拟目录的相对绝对路径,可能有点别扭,不过就是这么实现的。贴代码:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(wap.)?URL$
RewriteRule ^(/)?$ wap/index.html [L]
</IfModule>

把index.html的静态资源路径改为wap相对绝对路径就可以加载静态文件了。
上面没有考虑默认主域名,如果只用上面的规则的话,主域名也会跳转到相关的目录,这样就要加以区分一下了,完整的代码如下:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} ^URL$
RewriteRule ^(/)?$ wap/index.php [L]

RewriteCond %{HTTP_HOST} ^(wap.)?URL$
RewriteRule ^(/)?$ wap/index.html [L]
</IfModule>

经测试,这样就完整了。

Apache下通过伪静态配置跳转步骤

win下apache配置跳转步骤:

首先要检查下是否开启了伪静态组件,去httpd.conf检查下,具体步骤如下:

找到apache目录下的 http.conf文件 搜索 LoadModule rewrite_module modules/mod_rewrite.so
默认在前面是有个 # 号的,代表注释。需要把注释去掉,开启下伪静态模块,其次就可以配置伪静态规则了。

比如让127.0.0.1本地域名跳转到127.0.0.2域名下,在web根目录下新建文件.htaccess,默认win创建不了含有.的文件,可以百度查下用dos创建,或者复制一个。写入以下规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^127.0.0.1 [NC]
RewriteRule ^(.*) http://127.0.0.2/ [R=301,L]

保存后访问127.0.0.1会自动跳转到127.0.0.2,还有另一种方法是利用php的跳转函数header,后面跟个参数就行。
如果是绑定的多个域名都需要跳转,上面要用以下规则:

RewriteCond %{HTTP_HOST} ^域名1$ [OR]
RewriteCond %{HTTP_HOST} ^域名2$