从代码C#更改Web.Config中的URL重写规则
本文关键字:中的 URL 重写规则 Config Web 代码 更改 | 更新日期: 2023-09-27 18:35:23
我想从C#代码中修改重写规则。Url重写规则位于web.config文件中。
<system.webServer>
<rewrite>
<rules>
<rule name="partners">
<match url="^partners$" />
<action type="Rewrite"
url="partners.aspx" />
</rule>
<rule name="news">
<match url="^news$" />
<action type="Rewrite"
url="news.aspx" />
</rule>
<rule name="projects">
<match url="^projects$" />
<action type="Rewrite"
url="projects.aspx" />
</rule>
</rules>
</rewrite>
</system.webServer>
我想把例如<rule name="partners"> <match url="^partners$" />
换成<rule name="partners"> <match url="^friendship/partners$" />
,
如何查找节点规则并将匹配url更新为"new one",其中name="partners";?
这是我对动态url重写的想法。如果你有其他方式的话,谢谢你。
我用以下代码更改web.config网站中connectionString的值:
也许这个例子可以帮助你(只需将值connectionString
更改为system.webServer
,将add
更改为rules
等(。。请告诉我它是否适合你
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load("../myPath/web.config");
foreach (XmlNode node in myXmlDocument["configuration"]["connectionStrings"])
{
if (node.Name == "add")
{
if (node.Attributes.GetNamedItem("name").Value == "SCI2ConnectionString")
{
node.Attributes.GetNamedItem("connectionString").Value = "new value";
}
}
}
步骤1:-下载urlrewrite2.exe此处
步骤2:-在web.config 中编写逻辑
<system.webServer>
<rewrite>
<providers>
<provider name="FileMap" type="FileMapProvider, Microsoft.Web.Iis.Rewrite.Providers, Version=7.1.761.0, Culture=neutral, PublicKeyToken=0545b0627da60a5f">
<settings>
<add key="FilePath" value="D:'j'branches'JuzBuzz'App_Data'rewriteurl.txt" />
<add key="IgnoreCase" value="1" />
<add key="Separator" value="," />
</settings>
</provider>
</providers>
<rules>
<rule name="FileMapProviderTest" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{FileMap:{R:1}}" pattern="(.+)" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="{C:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
步骤3:-将.txt文件放在App_Code文件夹或web.config中指定地址的其他位置,txt文件将具有类似的数据
**技术,专家/search-expert.aspx?CatId=1
个人成长咨询,专家/search-expert.aspx?CatId=2*etc**
Microsoft有Microsoft.Web.Administration.dll可以帮助您,但它需要管理员权限才能执行
https://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration
它非常适合WinForms应用程序(如IIS管理器(来控制IIS服务器,但也可以用于其他类型的应用程序。
我确实有一个个人项目,它是一个自定义MWA实现,适用于一些非管理员的情况。如果你对它感兴趣,请告诉我。