首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使静态重定向与IIS Url重写2.0一起工作

无法使静态重定向与IIS Url重写2.0一起工作
EN

Stack Overflow用户
提问于 2011-11-01 16:59:28
回答 2查看 4K关注 0票数 1

正在本地运行以下IIS URL重写安装程序,但无法使其工作(从web.config):

代码语言:javascript
复制
        <rewrite>
        <rewriteMaps>
            <rewriteMap name="StaticRedirects">
                <add key="^tvb/" value="/tv/" />
            </rewriteMap>
        </rewriteMaps>
        <rules>
            <rule name="StaticRedirectsRule" stopProcessing="true">
                <match url=".*" />
                <conditions>
                    <add input="{StaticRedirects: {REQUEST_URI}}" matchType="Pattern" pattern="(.+)" ignoreCase="true" negate="false" />
                </conditions>
                <action type="Redirect" url="{C:1}" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>

尝试打开url http://localhost/tvb/http://localhost/tvb/?a=b会返回404错误,而不是将我重定向到http://localhost/tv (带或不带查询字符串)。

我在stackoverflow上找到了类似的帖子,并尝试了他们的建议:回收应用程序池,重启IIS服务,用URL和/或REQUEST_FILENAME替换REQUEST_URI,但这些更改都没有起到作用。

有没有人能看到我哪里出了问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-08 04:24:06

我也遇到了同样的问题,用PATH_INFO替换REQUEST_URI解决了这个问题。

这里是链接https://forums.iis.net/post/1883056.aspx

推理:“这是因为REQUEST_URI包含整个请求的URL,其中包含查询字符串。由于重写映射中的键不包含查询字符串,因此映射查找失败。”

票数 0
EN

Stack Overflow用户

发布于 2011-11-03 02:23:30

好吧,我自己找到了一个解决方案,所以我做了以下工作:

首先,rewriteMap似乎不支持正则表达式,所以这不起作用:

代码语言:javascript
复制
<add key="^tvb/" value="/tv/" />

相反,它必须是这样的:

代码语言:javascript
复制
<add key="/tvb/" value="/tv/" />

此外,自从IIS7 rewrite2.0模块(和文档)发布以来,REQUEST_URI变量似乎已经改变了行为。

以前,REQUEST_URI只包含url的路径,不包含域和查询字符串。

现在,显然IIS7中的REQUEST_URI的工作原理与Apache中的类似,即它也包含查询字符串,所以难怪这部分不能工作:

代码语言:javascript
复制
<add input="{StaticRedirects: {REQUEST_URI}}" ... />

相反,我不得不将其更改为:

代码语言:javascript
复制
<add input="{StaticRedirects: {SCRIPT_NAME}}" ... />

现在重定向可以工作了,不管有没有查询字符串!

希望这对某些人有帮助。

刚刚在serverfault上找到了这个:IIS Rewrite, rewrite maps and query strings

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7964303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档