经过N天的研究,实验,终于解决了ISAPI_Rewrite 3 二级域名泛解析问题,现在把经验跟大家分享一下,免得大家走弯路
另外想说的是,现在的网络真是快变成垃圾了,前几天网上查这方面的资料时,千篇一律的转载,翻来翻去就那几篇,要是对的也不说啥,关键是就那几篇,说的还是错误的,真是草他大爷!
一:首先,设置你的域名的泛解析,在域名解析面板把 *.abc.com 解析到你的服务器IP,这方面没难度,网上资料一大堆而且正确性高,不作为重点。
二 安装ISAPI_Rewrite 3 免费版的只能全局设置,收费版的功能较全,区别自己查资料,这个不是重点。
下面提供 ISAPI_Rewrite 3 破解的全功能版 本人已测试可用并用于生产环境 下载包里面包含注册码,破解文件以及一个实例还有二级域名伪静态后cookie丢失的解决方案,这个是很多人都会碰到的问题。
cookie丢失主要是asp,其他语言应该没有这种情况,主要是P3P协议的问题,尤其是ie6下。
在IIS添加HTTP头(解决不支持P3P协议)
自定义HTTP头名为:P3P
自定义HTTP头值为:CP=CAO PSA OUR
另外,跨语言的程序整合,也和P3P协议有一定关系,同步注册登录退出,这个研究后本人也会写下。
不多说,上下载地址,收取5分资源分:
http://mydearbaby.download.csdn.net/
三 注意下面红色部分的代码,如果是将目录伪静态成二级目录不需要注意此问题,但是将会员名伪静态成二级域名这类问题就请注意,下面贴上示例
- # Helicon ISAPI_Rewrite configuration file
- # Version 3.1.0.75
- RewriteEngine On
- RewriteBase
- RewriteCond %{HTTP_HOST} ^(.+)$
- RewriteCond %{HTTP:Referer} ^(?!http://\\1.*).*$
- RewriteRule ^.*\.(?:exe|rar|zip|mdb|txt|doc|xsl|jar|msi|flv|htaccess|mdb)$ /pic/i-10.gif [NC,N,O,I]
- # 排除当前虚拟主机需要正常访问的域名(www.YourDomain.com)
- RewriteCond %{HTTP_HOST} www\.YourDomain\.com$ [NC]
- RewriteRule (.*) $1 [NC,I,L]
- #会员伪静态二级域名下的目录示例
- #会员首页
- RewriteCond %{HTTP_HOST} HuangYe\.YourDomain\.com$ [NC]
- RewriteRule ^/([0-9]+)/$ /huangye/hyindex\.asp\?id=$1 [NC,I,L]
- RewriteCond %{HTTP_HOST} HuangYe\.YourDomain\.com$ [NC]
- RewriteRule ^/([0-9]+)/index.html$ /huangye/hyindex\.asp\?id=$1 [NC,I,L]
- #新闻
- RewriteCond %{HTTP_HOST} HuangYe\.YourDomain\.com$ [NC]
- RewriteRule ^/([0-9]+)/news/$ /huangye/hynews\.asp\?id=$1 [NC,I,L]
- RewriteCond %{HTTP_HOST} HuangYe\.YourDomain\.com$ [NC]
- RewriteRule ^/([0-9]+)/news/index.html$ /huangye/hynews\.asp\?id=$1 [NC,I,L]
- RewriteCond %{HTTP_HOST} HuangYe\.YourDomain\.com$ [NC]
- RewriteRule ^/([0-9]+)/news/list_([0-9]+).html$ /huangye/hynews\.asp\?id=$1&classid=$2 [NC,I,L]
- RewriteCond %{HTTP_HOST} HuangYe\.YourDomain\.com$ [NC]
- RewriteRule ^/([0-9]+)/news/list_([0-9]+)_([0-9]+).html$ /huangye/hynews\.asp\?id=$1&classid=$2&page=$3 [NC,I,L]
- RewriteCond %{HTTP_HOST} HuangYe\.YourDomain\.com$ [NC]
- RewriteRule ^/([0-9]+)/news/news_([0-9]+).html$ /huangye/hynewsshow\.asp\?id=$1&newsid=$2 [NC,I,L]
- #黄页部分伪静态规则结束
- #新闻部分伪静态规则
- RewriteCond %{HTTP_HOST} news\.YourDomain\.com$ [NC]
- RewriteRule ^/([a-zA-Z]+)/$ /Article/shownews\.asp\?leibie=$1 [NC,I,L]
- RewriteRule ^/([a-zA-Z]+)/index.html$ /Article/shownews\.asp\?leibie=$1 [NC,I,L]
- RewriteRule ^/([a-zA-Z]+)/index_([0-9]+).html$ /Article/shownews\.asp\?leibie=$1&page=$2 [NC,I,L]
- RewriteRule ^/([a-zA-Z]+)/([0-9]+).html$ /Article/newsshow\.asp\?id=$2 [NC,I,L]
- #新闻部分伪静态规则结束
- #每一个会员按用户名伪静态二级域名
- #首页
- RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9]+)\.YourDomain\.com$ [NC]
- RewriteRule ^/$ /member/index\.asp\?username=%1[NC,I,L]
- RewriteRule ^/index.html$ /member/index\.asp\?username=%1 [NC,I,L]
- #文章
- RewriteCond %{HTTP_HOST} ([a-zA-Z0-9]+)\.YourDomain\.com$ [NC]
- RewriteRule ^/Article/$ /member/shownews\.asp\?username=%1 [NC,I,L]
- RewriteCond %{HTTP_HOST} ([a-zA-Z0-9]+)\.YourDomain\.com$ [NC]
- RewriteRule ^/Article/index.html$ /member/shownews\.asp\?username=%1 [NC,I,L]
- RewriteCond %{HTTP_HOST} ([a-zA-Z0-9]+)\.YourDomain\.com$ [NC]
- RewriteRule ^/Article/list_([0-9]+).html$ /member/shownews\.asp\?username=%1&classid=$1 [NC,I,L]
- RewriteCond %{HTTP_HOST} ([a-zA-Z0-9]+)\.YourDomain\.com$ [NC]
- RewriteRule ^/Article/list_([0-9]+)_([0-9]+).html$ /member/shownews\.asp\?username=%1&classid=$1&page=$2 [NC,I,L]
注意这里
#每一个会员按用户名伪静态二级域名
#首页
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9]+)\.YourDomain\.com$ [NC]
RewriteRule ^/$ /member/index\.asp\?username=%1[NC,I,L]
username=%1[NC,I,L] 这里是%1 而不是$1 表示的是对RewriteCond 的 回调。很多人出错,表示不起作用,基本是这里的问题。