per*_*456 1 c# asp.net .htaccess mod-rewrite url-rewriting
我想在 ASP.NET 中用查询字符串重写 URL。URL 如下所示:
http://localhost:51392/productdetails.aspx?id=zdpMPZVXkDtjw92Crx7eew==
Run Code Online (Sandbox Code Playgroud)
我想将 url 改写成这样:
http://localhost:51392/Details/zdpMPZVXkDtjw92Crx7eew==
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法重写 url(类似这样):
<urlMappings>
<add url="~/Shop" mappedUrl="~/shop.aspx"/>
</urlMappings>
Run Code Online (Sandbox Code Playgroud)
但我不太确定如何使用查询字符串正确映射 URL?可用于实现此目的的最简单或其他方法是什么?
谢谢!
PS 伙计们,这就是我尝试访问重写 URL 的方式:
<a href='<%# "/productdetails.aspx?id=" + RL_DAL.RijndaelHelper.AES.Encrypt(Eval("ProductID").ToString(),"key_to_enrypt") %>'><%# Eval("ProductName") %>
Run Code Online (Sandbox Code Playgroud)
在 IIS 平台上托管的 asp.net -
将此添加到system.webServer站点的 web.config ( ) 部分
<rewrite>
<rules>
<rule name="rewrite" stopProcessing="true">
<match url="productdetails.aspx" />
<conditions>
<add input="{QUERY_STRING}" pattern="id=([a-zA-Z0-9=]+)" />
</conditions>
<action type="Rewrite" url="/Details/{C:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)然后每个请求都/productdetails.aspx?id=zdpMPZVXkDtjw92Crx7eew==将被重写为http://localhost:51392/Details/zdpMPZVXkDtjw92Crx7eew==. 但是重写并不意味着它会在用户的浏览器中改变,只是服务器上的目的地。
但是,如果要重定向它,请将规则更改为:
<rule name="redirect" stopProcessing="true">
<match url="productdetails.aspx" />
<conditions>
<add input="{QUERY_STRING}" pattern="id=([a-zA-Z0-9=]+)" />
</conditions>
<action type="Redirect" url="/Details/{C:1}" redirectType="Permanent" appendQueryString="false" />
</rule>
Run Code Online (Sandbox Code Playgroud)
这将执行永久 301 重定向,Permanent以Temporary对操作类型进行临时 307 重定向更改。
有关两者之间差异的更多信息,请参阅重定向与重写。
使用我给出的重定向规则:
用户输入
/productdetails.aspx?id=zdpMPZVXkDtjw92Crx7eew==他们被重定向到的/Details/zdpMPZVXkDtjw92Crx7eew==URL 必须能够处理请求。此场景通常用于将站点移动到新平台/URL 结构时。
做相反的事情,在用户输入/Details/zdpMPZVXkDtjw92Crx7eew==和站点处理使用请求的/productdetails.aspx?id=zdpMPZVXkDtjw92Crx7eew==情况下:
<rule name="rewrite">
<match url="Details/([a-zA-Z0-9=]+)" />
<action type="Rewrite" url="/productdetails.aspx?id={R:1}" />
</rule>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6702 次 |
| 最近记录: |