问:web.config里面的配置有谁了解? 这个url里面是什么意思?
<match url="." /> 这个url不带域名的吗?
网站用的域名泛匹配。
期望这样的跳转方式,我提供几个范例:
test1.domainA.com/s.html?c=12…test1.domainB.com/s.html?c=12…
aa34234.domainA.com/s.html?c=55…aa34234.domainB.com/s.html?c=55…
其中二级域名都是不定的,后面的参数也是不定的。
我做了表达式:^(.?)domainA.com(.*)$让它跳转到:{R:1}domainB.com{R:2}
{R:1}表示括号中匹配的第1组
{R:1}表示括号中匹配的第2组
XML/HTML code?
1234567891011121314 | <?``xml version``=``"1.0" encoding``=``"UTF-8"``?>``<``configuration``>`` ``<``system.webServer``>`` ``<``rewrite``>`` ``<``rules``>`` ``<``rule name``=``"test001" stopProcessing``=``"true"``>`` ``<``match url``=``"^(.*?)domainA.com(.*)$" />`` ``<``conditions logicalGrouping``=``"MatchAll" trackAllCaptures``=``"false" />`` ``<``action type``=``"Redirect" url``=``"{R:1}domainB.com{R:2}" redirectType``=``"Permanent" />`` ``</``rule``>`` ``</``rules``>`` ``</``rewrite``>`` ``</``system.webServer``>``</``configuration``> |
上面代码经过反复测试并没有效果。好像那个url只能匹配参数形式,没道理啊
one day later
已经完美解决。
XML/HTML code?
12345678910111213141516 | <?``xml version``=``"1.0" encoding``=``"UTF-8"``?>``<``configuration``>`` ``<``system.webServer``>`` ``<``rewrite``> `` ``<``rules``>`` ``<``rule name``=``"RedirectToNewDomain" enabled``=``"true" patternSyntax``=``"Wildcard" stopProcessing``=``"true"``>`` ``<``match url``=``"*" />`` ``<``conditions logicalGrouping``=``"MatchAny"``>`` ``<``add input``=``"{HTTP_HOST}" pattern``=``"*domainA.com*" />`` ``</``conditions``>`` ``<``action type``=``"Redirect" url``=``"http://{C:1}domainB.com{C:2}{HTTP_URL}" appendQueryString``=``"false" />`` ``</``rule``>`` ``</``rules``>`` ``</``rewrite``>`` ``</``system.webServer``>``</``configuration``> |
昨天研究了半天没搞定,今天在一个哥们的帮助下没几分钟解决了。。这哥们只会一点点php,并不懂asp也没用过iis,偶尔还让我帮忙写点小工具,他是凭什么解决的呢?
总体来说是因为他用谷歌,我用百度。。。
他搜到了:stackoverflow.com/questions/5… serverfault.com/questions/2…
这是关键的信息。使用了这个老外的代码后基本完美解决,只是跳转后参数无法传递过去。
里面的<action type="Redirect" url="http://{C:1}.newdomain.com{C:2}{PATH_INFO}" appendQueryString="false" /> 标红的PATH_INFO不知道大家有没有注意到。这个代码使用了后参数会丢失。也不难理解,这个是表示路径,于是我想应该有表示参数之类的变量,而这个应该是有个一整套的大写字母表示的环境变量,我要找到带参数的环境变量,应该是REQUEST之类开头的?我不好意思再麻烦哥们了,人家都去吃饭了,后面得靠自己了,我想应该会存在一篇文章专门介绍这些大写的变量,而这个页面应该包含PATH_INFO和我要的表示参数的未知变量名,于是我在百度用关键字“PATH_INFO iis7”搜,怎么也搜不到我要的信息,都是无关信息。
后来我用哥们给我的可以在谷歌找资料的工具hideu.app/?f=d3DaA,下载…
当我看到IIS Server Variables时就已经知道我的问题解决了。iis服务器变量嘛。
点开一看,果然清晰整齐的列表,我很快找到了,我要的是{HTTP_URL},并不是我一开始想的REQUEST开头之类的。换上去一测试,非常完美。
有人会问,那你为什么不一开始在百度搜IIS Server Variables或者搜iis环境变量呢?你这就事后诸葛了,谁能一下子就想到呢?或许我的搜索技能有待提升吧。反正谷歌很懂我,第一页前面就看到了我要的结果。至于百度嘛,不加评价,大家自己看吧。老外的技术论坛有用的信息比较,以后可以多逛逛,还能练练英语水平,不过访问速度好慢啊。
另外说下{C:1}是什么意思,前面说过{R:1}表示正则子匹配第一组,R表示regular的首字母。 {C:1}表示普通模式的匹配第一组。
注意301重定向的配置参数中虽然也有<rewrite>标签,但是它并不是“url重写”,这两者是不一样,注意区分。<``action
type``="Redirect" url="xxx">和
区别