Url 重写 return 在 umbraco 中用 + 替换空格时出现 404 错误
Url rewrite return 404 error when spaces replaced with + in umbraco
我需要用 umbraco 重写 url。如果我留下空格,它目前正在工作。但是我想删除空格并用 + 替换它们以获得更用户友好的 urls 而没有 %20。
所以这是有效的。
/For-Sale/6_24-Hunter Street-KELVIN GROVE-4059
但事实并非如此。而 umbraco 只是告诉我找不到该页面。 404 错误。
/For-Sale/6_24-Hunter+Street-KELVIN+GROVE-4059
这是我正在使用的 umbraco url 重写规则。
<add name="SaleRule"
virtualUrl="^~/For-Sale/(.*)"
destinationUrl="~/Result/Item?type=For-Sale&address="
rewriteUrlParameter="ExcludeFromClientQueryString"
ignoreCase="true" />
知道我做错了什么吗?
对于那些遇到这个问题的人,这里是我解决它的方法。
我在下面找到了答案post -
Is Enabling Double Escaping Dangerous?
要允许 url 中的 + 符号,我需要在 web.config 中设置以下内容。
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true"/>
</security>
</system.webServer>
我在 Umbraco 中的 Url 重写规则是正确的。
我需要用 umbraco 重写 url。如果我留下空格,它目前正在工作。但是我想删除空格并用 + 替换它们以获得更用户友好的 urls 而没有 %20。
所以这是有效的。
/For-Sale/6_24-Hunter Street-KELVIN GROVE-4059
但事实并非如此。而 umbraco 只是告诉我找不到该页面。 404 错误。
/For-Sale/6_24-Hunter+Street-KELVIN+GROVE-4059
这是我正在使用的 umbraco url 重写规则。
<add name="SaleRule"
virtualUrl="^~/For-Sale/(.*)"
destinationUrl="~/Result/Item?type=For-Sale&address="
rewriteUrlParameter="ExcludeFromClientQueryString"
ignoreCase="true" />
知道我做错了什么吗?
对于那些遇到这个问题的人,这里是我解决它的方法。
我在下面找到了答案post - Is Enabling Double Escaping Dangerous?
要允许 url 中的 + 符号,我需要在 web.config 中设置以下内容。
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true"/>
</security>
</system.webServer>
我在 Umbraco 中的 Url 重写规则是正确的。