Url rewriting IIS重写时,slug生成与安培数有关
我正在尝试更改url,如 example.com/company/company-1 到 example.com?slug=company-1 我使用以下模式重新编写Url rewriting IIS重写时,slug生成与安培数有关,url-rewriting,iis-7,rewrite,isapi-rewrite,Url Rewriting,Iis 7,Rewrite,Isapi Rewrite,我正在尝试更改url,如 example.com/company/company-1 到 example.com?slug=company-1 我使用以下模式重新编写 <rule name="company"> <match url="^company/([_0-9a-z-()]+)" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" ne
<rule name="company">
<match url="^company/([_0-9a-z-()]+)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="company.php?slug={R:1}" />
</rule>
在我的web.config文件中
直到公司名称包含一个符号和,例如火腿和鸡蛋,此项功能才起作用
公司名称是url编码的,所以它实际上像火腿蛋一样到达
我的哪个模式写入example.com?slug=ham-
我已经试着在图案上加上了符号
e、 g
及
这两种情况都会导致服务器错误
在不更改传入url组成的情况下,我可以做什么
提前谢谢
Nick您必须使用
UNENCODED\u URL
变量,该变量存储原始URL(而不是UNENCODED,它将和拆分为一个新参数)
您可以根据这些条件运行匹配,并在需要时使用{C:1}
语法而不是{R:1}
语法(与编码规则模式匹配)
请参阅:将smth简化,例如“^company/([^/]+)”是的,我刚刚尝试了你的建议,之前刚刚匹配了^company/之后的任何内容,但它们都会抛出500服务器错误
<match url="^company/([_0-9a-z-()&]+)" />
<match url="^company/([_0-9a-z-()&]+)" />