使用三个段时重写 URL 不起作用
Rewriting URL not working when using three segments
此代码完美地 url 重写 URL.
的 2 段
例如
/nottinghamshire/newark
但是,如果我将 string t = Request.QueryString["t"].Replace("-", " ").ToLower().Replace(".aspx", "")
添加到组合中,则意味着
/nottinghamshire/newark/plumbers
它失败了,404s 是这样的:
这行得通吗?
?r=nottinghamshire&c=newark&t=plumbers
这是我的代码
网络配置:
<rule name="rewritereview">
<match url="^([^/]+)/([^/]+)?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" pattern="\.js|\.css|\.img|\.scimg" negate="true" />
</conditions>
<action type="Rewrite" url="/city.aspx?r={R:1}&c={R:2}&t={R:3}" appendQueryString="false" />
</rule>
代码隐藏在 city.aspx.cs
string r = Request.QueryString["r"].Replace("-", " ").ToLower();
string c = Request.QueryString["c"].Replace("-", " ").ToLower().Replace(".aspx","");
string t = Request.QueryString["t"].Replace("-", " ").ToLower().Replace(".aspx", "");
if (r != null && c != null && t != null)
{
// populate page
}
else // 404?
{
}
我做错了什么?
尝试更新匹配项 URL。添加一个额外的“/([^/]+)”
<match url="^([^/]+)/([^/]+)/([^/]+)?$" />
此代码完美地 url 重写 URL.
的 2 段例如
/nottinghamshire/newark
但是,如果我将 string t = Request.QueryString["t"].Replace("-", " ").ToLower().Replace(".aspx", "")
添加到组合中,则意味着
/nottinghamshire/newark/plumbers
它失败了,404s 是这样的:
这行得通吗?
?r=nottinghamshire&c=newark&t=plumbers
这是我的代码
网络配置:
<rule name="rewritereview">
<match url="^([^/]+)/([^/]+)?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" pattern="\.js|\.css|\.img|\.scimg" negate="true" />
</conditions>
<action type="Rewrite" url="/city.aspx?r={R:1}&c={R:2}&t={R:3}" appendQueryString="false" />
</rule>
代码隐藏在 city.aspx.cs
string r = Request.QueryString["r"].Replace("-", " ").ToLower();
string c = Request.QueryString["c"].Replace("-", " ").ToLower().Replace(".aspx","");
string t = Request.QueryString["t"].Replace("-", " ").ToLower().Replace(".aspx", "");
if (r != null && c != null && t != null)
{
// populate page
}
else // 404?
{
}
我做错了什么?
尝试更新匹配项 URL。添加一个额外的“/([^/]+)”
<match url="^([^/]+)/([^/]+)/([^/]+)?$" />