我通常使用 URL 重写将内容 ID 传递到我的网站,所以这
Foo.1.aspx
重写为
Foo.aspx?id=1
对于特定的应用程序,我需要将多个 ID 传递到单个页面,因此我重写了一些内容来接受这一点:
Foo.1,2,3,4,5.aspx
这在 Cassini(Visual Studio 的内置临时 Web 服务器)中运行良好,但当我在运行 IIS 的实时服务器上尝试时,却出现“Internet Explorer 无法显示网页”的情况。这是 IIS 的限制吗?我应该只使用破折号或下划线而不是逗号吗?
据我所知,URL 的文件名部分允许使用逗号,但逗号是域*中的保留字符。
您使用什么版本的 IE?我遇到过 IE5.5 在逗号上截断 URL 的奇怪报告 (链接在这里 http://kb.adobe.com/selfservice/viewContent.do?externalId=326072,但是在 IE7 中测试了带有逗号的 URL,似乎没问题,所以如果有 IE bug,它似乎不再存在 - 这可能是 IIS 问题吗?
我想知道页面错误是否是由于规则失败造成的mod_rewrite
- 你能发布匹配多个 id 并将它们传递给你的规则吗Foo.aspx
?有没有可能它只是匹配Foo.N,N
,并因更多逗号而失败?
* From the
URI RFC http://www.ietf.org/rfc/rfc2396.txt:
2.2.保留字符
许多 URI 包含由某些组成或分隔的组件
特殊字符。这些字符被称为“保留”,因为
它们在 URI 组件中的使用仅限于它们的保留
目的。如果 URI 组件的数据与
保留目的,那么冲突的数据必须在之前转义
形成 URI。
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
上面的“保留”语法类是指那些
在 URI 中允许,但在
通用 URI 语法的特定组成部分
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)