url重写处理多域名问题

buyue__ 2016-09-27 12:00:14
求一个apache .htaccess文件

要求如下

1.默认
test.cn跳转到test.cn/index.php

2.特殊固定

wx.test.cn跳转到test.cn/wx/
gb.test.cn跳转到test.cn/gb/

3.随机非固定

demo1.test.cn跳转到test.cn/common/default/index?id=demo1
demo2.test.cn跳转到test.cn/common/default/index?id=demo2

这里的demo1和demo2是任意的,反正就是除了wx和gb,其他的三级域名都统一处理
...全文
268 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-09-29
  • 打赏
  • 举报
回复
就那么几个参数,你自己排着玩就是了 因为这些情况是你虚拟的,而真正的泛域名解析是通过 配置虚拟主机完成的 通过修改 httpd.conf 文件(只在服务气功时加载),而 .htaccess 文件是每个 http 请求都加载的 另外 test.cn/index.php/wx/aa/bb 需要 index.php 用代码做出解析,那和 wx.test.cn/index.php/aa/bb 从 $_SERVER['HTTP_HOST'] 中析出 wx 又有什么区别
buyue__ 2016-09-29
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
RewriteCond %{HTTP_HOST} ^(wx|gb).test.cn$ RewriteRule ^(/?)(.*)$ /%1/$2 [PT,L] RewriteCond %{HTTP_HOST} ^([a-z]+).test.cn$ RewriteRule ^(/?)(.*)$ /common/default/$2?id=/%1 [PT,L]
还有个限制,就是 默认 test.cn是指向test.cn/index.php的,所以wx.test.cn是指向test.cn/index.php/wx,wx.test.cn/aa/bb指向test.cn/index.php/wx/aa/bb,就是把aa/bb这块当做一个块就好
xuzuning 2016-09-29
  • 打赏
  • 举报
回复
RewriteCond %{HTTP_HOST} ^(wx|gb).test.cn$ RewriteRule ^(/?)(.*)$ /%1/$2 [PT,L] RewriteCond %{HTTP_HOST} ^([a-z]+).test.cn$ RewriteRule ^(/?)(.*)$ /common/default/$2?id=/%1 [PT,L]
buyue__ 2016-09-29
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
你知道什么是重写,什么是跳转吗? 简单的说:重写不会改变浏览器地址栏,而跳转会 你要先弄清楚你需要的是什么
我用错词语了,应该说‘指向’ , 就是这样写http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html,但是我写不出来
xuzuning 2016-09-29
  • 打赏
  • 举报
回复
你知道什么是重写,什么是跳转吗? 简单的说:重写不会改变浏览器地址栏,而跳转会 你要先弄清楚你需要的是什么
buyue__ 2016-09-29
  • 打赏
  • 举报
回复
现在的问题是 不符合条件1,然后就没有判断条件2了 RewriteCond %{HTTP_HOST} ^(wx|gb).test.cn$ RewriteRule ^(.*)$ /index2.php/$1 RewriteCond %{HTTP_HOST} ^(www).test.cn$ RewriteRule ^(.*)$ index.php/$1 [L] 先判断wx.test.cn域名,如果是就指向index2.php,否则再判断是不是www.test.cn,如果是就指向index.php 。现在是条件1不符合,条件2就没有继续判断了
buyue__ 2016-09-29
  • 打赏
  • 举报
回复
访问 wx.test.cn怎样指向到 www.test.cn/admin.php
buyue__ 2016-09-29
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
RewriteCond %{HTTP_HOST} ^(wx|gb).test.cn$ RewriteRule ^(/?)(.*)$ /%1/$2 [PT,L] RewriteCond %{HTTP_HOST} ^([a-z]+).test.cn$ RewriteRule ^(/?)(.*)$ /common/default/$2?id=/%1 [PT,L]
为什么我这么写,不会指向到admin.php? RewriteCond %{HTTP_HOST} ^(wx|gb).test.cn$ RewriteRule ^(/?)(.*)$ admin.php/%1/$2 [PT,L] 我访问的是wx.test.cn
傲雪星枫 2016-09-28
  • 打赏
  • 举报
回复
可以参考apache rewrite alias写。

21,886

社区成员

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

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