二级域名 或 url重写 的问题

sfhy20 2012-11-03 05:08:24
修改一个多用户商城

卖家自定义一个二级域名 在地址栏输入二级域名 后 会跳转到这个卖家的主页

例如当前卖家店铺主页 www.abc.com/?store-1.html 二级域名为sss

如何实现 输入sss.abc.com 跳转到 www.abc.com/?store-1.html 且地址栏还是显示 sss.abc.com

请各位大神,给指点下思路,谢谢!






...全文
286 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
amu1433 2012-11-09
  • 打赏
  • 举报
回复
基本就是这样的规则 用的是ISAPI_Rewrite 伪静态这种url重写 下面的是我给自己网站写的 你可以参考下
#版本不一样 上传服务器上必须修改Host为%{HTTP:Host}
RewriteCond Host: ankang\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/ankang/$1 [I]

RewriteCond Host: baoji\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/baoji/$1 [I]

RewriteCond Host: hanzhong\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/hanzhong/$1 [I]

RewriteCond Host: shangluo\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/shangluo/$1 [I]

RewriteCond Host: tongchuan\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/tongchuan/$1 [I]

RewriteCond Host: xianyang\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/xianyang/$1 [I]

RewriteCond Host: yanan\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/yanan/$1 [I]

RewriteCond Host: yulin\.0917cc\.com
RewriteRule ^(.*)$ /zhuanti/yulin/$1 [I]


RewriteCond %{HTTP:Host} ^0917cc.com$
RewriteRule (.*) http://www.0917cc.com$1 [NC,R=301]


sfhy20 2012-11-06
  • 打赏
  • 举报
回复
已经实现,虽然不是真正的二级域名,只是传值过去,用程序做,但是效果还是达到了。 谢谢各位高手!
shuiping567541 2012-11-05
  • 打赏
  • 举报
回复
我觉得楼主应该建立一个分发的php文件,专门做各路域名来访问处理不同的页面 其实上面已经有人说过了,就用include 我写几行代码,看楼主才不采啊

<?php
   $Url = $_SERVER['HTTP_HOST'];
   if( $Url === '默认的主域名' ){
       // 跳入主域名下
   }else{
   $Pre = strtok( $Url );
   if( $Pre !==false && in_array( $Pre , $allowUrlArr ) ){
        f( $Pre ); // 这里就开开始显示不同地区的内容
   }
}
?>
acabin 2012-11-05
  • 打赏
  • 举报
回复
引用 5 楼 sfhy20 的回复:
引用 4 楼 acabin 的回复:做泛解析,指向某一台机 然后根据$_SERVER里面的信息做对应工作 是的,我想的原理就是这样,但是url怎么重写? 我可以查到那个二级域名,也可以跳转,但是 那个地址怎么重写,显示 sss.abc.com 不让他在跳转后变成www.abc.com/?store-1.html
url不重写,直接通过你的入口php调用对应的html。
sfhy20 2012-11-04
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
include 就可不改变地址栏而更换内容
没听过include有这个用法啊?求指教
xuzuning 2012-11-04
  • 打赏
  • 举报
回复
include 就可不改变地址栏而更换内容
sfhy20 2012-11-04
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
#1的做法是正确的 sss.abc.com 对应 www.abc.com/?store-1.html aaa.abc.com 对应 www.abc.com/?store-2.html 既然是 根据输入的sss等去查询数据库,那么表示 sss 与 store-1.html 的对应关系也不是一成不变的 既如此,就不可能去写urlrewrite规则了 $u =……
sss.abc.com 对应 www.abc.com/?store-1.html是不变 我主要是想让地址拦也显示 sss.abc.com 而不仅仅是跳转到
xuzuning 2012-11-04
  • 打赏
  • 举报
回复
#1的做法是正确的 sss.abc.com 对应 www.abc.com/?store-1.html aaa.abc.com 对应 www.abc.com/?store-2.html 既然是 根据输入的sss等去查询数据库,那么表示 sss 与 store-1.html 的对应关系也不是一成不变的 既如此,就不可能去写urlrewrite规则了 $u = strtok($_SERVER['HTTP_HOST'], '.'); //根据 $u 查询数据库 $default = '得到的结果'; //后续操作
shuiping567541 2012-11-04
  • 打赏
  • 举报
回复
在apache里面设置了 应该
sfhy20 2012-11-03
  • 打赏
  • 举报
回复
引用 3 楼 xiaowall 的回复:
那就中间再加个步骤到 index.php 再重新跳转
跳转后地址就变了
sfhy20 2012-11-03
  • 打赏
  • 举报
回复
引用 4 楼 acabin 的回复:
做泛解析,指向某一台机 然后根据$_SERVER里面的信息做对应工作
是的,我想的原理就是这样,但是url怎么重写? 我可以查到那个二级域名,也可以跳转,但是 那个地址怎么重写,显示 sss.abc.com 不让他在跳转后变成www.abc.com/?store-1.html
acabin 2012-11-03
  • 打赏
  • 举报
回复
做泛解析,指向某一台机 然后根据$_SERVER里面的信息做对应工作
phpman_cn 2012-11-03
  • 打赏
  • 举报
回复
那就中间再加个步骤到 index.php 再重新跳转
sfhy20 2012-11-03
  • 打赏
  • 举报
回复
引用 1 楼 Meteorlet 的回复:
sss.abc.com配置到跟www.abc.com一样的目录,然后在程序里判断一下 if($_SERVER['HTTP_HOST'] == 'sss.abc.com') { $default = 'store-1.html'; }
但是这个sss是卖家自定义,不可能每一个都写到文件里,我想的是动态实现, 根据输入的sss等去查询数据库,找到了就定向到www.abc.com/?store-1.html
Meteorlet 2012-11-03
  • 打赏
  • 举报
回复
sss.abc.com配置到跟www.abc.com一样的目录,然后在程序里判断一下 if($_SERVER['HTTP_HOST'] == 'sss.abc.com') { $default = 'store-1.html'; }

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧