1

我有以下规则:

    <rewrite>
        <rules>
            <rule name="FlowURLs">
                <match url="^flows/[_0-9a-zA-Z-]+/[_0-9a-zA-Z-]+/([._0-9a-zA-Z-]+)" />
                <action type="Rewrite" url="music.html?flow={R:1}" />
            <conditions logicalGrouping="MatchAny">
                    <add input="{URL}" pattern="^.*\.(ashx|axd|css|gif|png|jpg|jpeg|js|flv|f4v|html)$" negate="true" />
            </conditions>
            </rule>
        </rules>
    </rewrite>

我想要做的是,如果一个 url 传入如下内容:

http://localhost/flows/t/twit_nobone/twit_nobone1354334226132.mp3

我想将其重写为:

http://localhost/music.html?id=twit_nobone1354334226132.mp3

music.html 位于根目录中,它有一个样式表、javascript 和图像。我看到的问题是,当它重写时,没有显示图像、js 或样式表。当我检查资源时,看起来链接现在

http://localhost/flows/t/twit_nobone/twit_nobone1354334226132.mp3/demo.css
http://localhost/flows/t/twit_nobone/twit_nobone1354334226132.mp3/images/screenshot.png

代替

http://localhost/demo.css
http://localhost/images/screenshot.png

我究竟做错了什么?我还注意到浏览器中的 url 永远不会更改为重写的。

4

1 回答 1

0

你必须有可能如何解决这个问题。

1:如果您想保留地址,请http://localhost/flows/t/twit_nobone/twit_nobone1354334226132.mp3 确保其中的任何资源music.html都绝对链接,而不是test.css/path/to/test.css根服务器创建。然后它将起作用。

2:如果您更喜欢 http://localhost/music.html?id=twit_nobone1354334226132.mp3 EDIT 之类的地址

我刚刚发现这很简单 - 将操作更改为:

<action type="Redirect" redirectType="Found" url="music.html?flow={R:1}" />
于 2013-03-21T17:09:10.260 回答