2017-06-19 125 views
0

我想写一个asp.net页面重定向ASP> NET页面重定向301

这个URL

https://mysiteurl/mystore/storename/about-the-store

应始终重定向到

https://mysiteurl/mystore/storename

约-的 - 存储页面存在,但我们不想删除它。 我们有多个商店,每个商店都有关于商店的页面。

同样

https://mysiteurl/mystore/storename1/about-the-store

应始终重定向到

https://mysiteurl/mystore/storename1

我需要这个重定向发生,即使用户键入完整的关于最店网址在浏览器中,它应该成为301重定向。

此规则仅适用于商店,例如规则只应在URL中可用“mystore”时重定向。

对于我的应用程序中有多少商店没有限制。

回答

0

您需要在IIS管理器中配置重写映射和规则。打开IIS管理器,找到您的网站并导航到“URL重写”。

该程序的深入文档可以找到here

一旦你创建了一个重写映射specifing新的网址来取代旧的URL,像下面应该出现在你的web.config文件:

<rewriteMaps> 
<rewriteMap name=”Redirects”> 
<add key=”/mystore/storename/about-the-store” value=”/mystore/storename” /> 
<add key=”/mystore/storename1/about-the-store” value=”/mystore/storename1” /> 
</rewriteMap> 
</rewriteMaps> 

在这里,我们基本上是提供ASP .net与我们页面的新位置,并执行从旧URL到新的301重定向。

为了保持干净,您可以向项目的根目录添加一个名为'redirect.config'的新文件,并将上述内容复制并粘贴到文件中,然后将其添加到system.webServer下的web.config文件中:

<rewrite> 
<rewriteMaps configSource=”redirect.config” /> 
<rules> 
<rule name=”Redirect Rules”> 
<match url=”.*” /> 
<conditions> 
<add input=”{Redirects:{REQUEST_URI}}” pattern=”(.+)” /> 
</conditions> 
<action type=”Redirect” url=”{C:1}” /> 
</rule> 
</rules> 
</rewrite> 

在这里,我们将web.config指向我们的redirect.config文件并传递需要的参数或“规则”以使URL切换。

+0

redirect.config包含商店的名称,但在我的情况下会有成千上万的商店,所以我不能在这样的配置文件中添加条目。 – Ali

+0

在这种情况下,我认为重写地图仍然是您最大的希望。您应该可以自定义参数以满足您的需求。也许这[后](https://stackoverflow.com/questions/18877075/multiple-301-redirect-for-multiple-pages-or-url)可以有一些帮助?祝你好运。 –