web-dev-qa-db-ja.com

Web.ConfigのURL書き換えルールをコードC#から変更します

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を「新しいもの」に更新するにはどうすればよいですか。name= "partners";?

これは、動的URL書き換えに関する私の考えです。あなたが持っているなら他の方法をありがとう。

9
levi

Web.configWebサイトのconnectionStringの値を次のコードで変更します。

この例が役立つかもしれません(値connectionStringsystem.webServerで、addrulesで変更するだけです。うまくいくかどうか教えてください。

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
Mehdi Bugnard

マイクロソフトでは、Microsoft.Web.Administration.dllを利用できますが、実行するには管理者権限が必要です。

https://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration

WinFormsアプリケーション(IIS Managerなど)がIISサーバーを制御するのに非常に適していますが、他の種類のアプリケーションでも使用できます。

管理者以外の場合に機能するカスタムMWA実装である個人プロジェクトがあります。興味のある方はお知らせください。

0
Lex Li

ステップ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ファイルにデータが含まれますお気に入り

** technology、expert/search-expert.aspx?CatId = 1

カウンセリング-個人的な成長、専門家/検索-専門家.aspx?CatId = 2 **など**

0
Ankit