帝云CMS手机网站绑定二级域名时、创建多网站时,都需要绑定二级域名到子目录上,但有些虚拟主机是不支持域名绑定子目录的。
如果是支持.htaccess文件的虚拟主机可以使用本教程方法实现,比如Apache环境主机。
假设:
主域名:www.xxxx.com 首页目录:/
手机站域名:m.xxxx.com 首页目录:/mobile/
多站创建的英文站点域名:en.xxxx.com 首页目录:/en/
所有域名都绑定到网站主目录
实现方法:
一、Apache环境
在网站根目录创建.htaccess文件
添加如下代码
RewriteEngine On # 多站插件的英文站点 RewriteCond %{HTTP_HOST} ^en.xxxx.com$ RewriteCond %{REQUEST_URI} !^/en/ RewriteRule ^(.*)$ /en/$1 RewriteCond %{HTTP_HOST} ^en.xxxx.com$ RewriteRule ^(/)?$ en/index.php [L] # 手机域名 RewriteCond %{HTTP_HOST} ^m.xxxx.com$ RewriteCond %{REQUEST_URI} !^/mobile/ RewriteRule ^(.*)$ /mobile/$1 RewriteCond %{HTTP_HOST} ^m.xxxx.com$ RewriteRule ^(/)?$ mobile/index.php [L] # 主域名 RewriteCond %{HTTP_HOST} ^www.xxxx.com$ RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !.(js|ico|gif|jpe?g|bmp|png|css)$ /index.php [NC,L]
2、在en目录与mobile目录下都要创建 .htaccess文件
填写如下代码
RewriteEngine On RewriteBase /mobile RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !.(js|ico|gif|jpe?g|bmp|png|css)$ /index.php [NC,L]
说明:
RewriteBase /mobile
/mobile 填写正确的目录,英文站就填写 /en
3、分别打开en目录与mobile目录下的index.php文件
添加一行代码
define('FIX_WEB_DIR', 'mobile');//
4、后台伪静态设置
后台测试下每个域名伪静态都正常即可
已经可以了!
西部数据虚拟主机测试成功!
二、Nginx
如果是宝塔Nginx环境,则在站点配置文件中添加如下规则
就是用上面的 .htaccess 中的规则转换成 Nginx,百度有很多在线转换工具
if ($http_host ~ "^en.xxxx.com$"){ set $rule_0 1$rule_0; } if ($uri !~ "^/en/"){ set $rule_0 2$rule_0; } if ($rule_0 = "21"){ rewrite ^/(.*)$ /en/$1; } if ($http_host ~ "^en.xxxx.com$"){ set $rule_1 1$rule_1; } if ($rule_1 = "1"){ rewrite ^/(/)?$ /en/index.php last; } if ($http_host ~ "^m.xxxx.com$"){ set $rule_2 1$rule_2; } if ($uri !~ "^/mobile/"){ set $rule_2 2$rule_2; } if ($rule_2 = "21"){ rewrite ^/(.*)$ /mobile/$1; } if ($http_host ~ "^m.xxxx.com$"){ set $rule_3 1$rule_3; } if ($rule_3 = "1"){ rewrite ^/(/)?$ /mobile/index.php last; } if ($http_host ~ "^www.xxxx.com$"){ set $rule_4 1$rule_4; } if (!-f $request_filename){ set $rule_4 2$rule_4; } if (!-d $request_filename){ set $rule_4 3$rule_4; } if ($rule_4 = "321"){ rewrite /!.(js|ico|gif|jpe?g|bmp|png|css)$ /index.php last; }