我一直在研究一个小的链接长度的抑制器网站,似乎无法在IIS7上找到它。我习惯于使用isapi rewrite和mod_rewrite。
以下情况有效:
可以说我有test.com,这是主域名。域应该正常处理所有文件。但是,当/.*
不是目录或文件时,它应该将其发送到redirect.asp?text=(.*)
。
这就是我的web.config看起来像
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="YOURLS 1" stopProcessing="true">
<match url="^([0-9A-Za-z-]+)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="redirect.asp?test={R:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
答案 0 :(得分:0)
您的规则可能没有太大问题,除非您使用test
(带有's')作为web.config
中的查询字符串参数,但在您的文字中,您说它是应该是text
。一个错字或者也许这就是它无法正常工作的原因?
<action type="Rewrite" url="redirect.asp?text={R:1}" appendQueryString="false" />
答案 1 :(得分:0)
这似乎与URL重写器的错误版本有关。我安装了最新的2.0,它已经修好了!