簡體   English   中英

如何重寫到URL

[英]How to rewrite to an url

在IIS網址重寫中,可以執行以下操作以將其重寫為另一個網址:

 <rule name="Blog" stopProcessing="true"> 
<match url="(?:^blog|weblog)(?:/)?(.*)" /> 
<action type="Rewrite" url="http://blog.domain.com/{R:1}" appendQueryString="true" logRewrittenUrl="true" /> 
</rule>

因此,當調用domain.com/blog URL時,URL會被重寫為blog.domain.com(但瀏覽器中的URL保持不變)。

我如何在C#代碼中完成相同的工作?

我有HttpContext,但隨后只能重定向。 有一個RewritePath方法,但是將url作為參數給出會導致“無效的虛擬路徑”異常。

我不確定它是否稱為重寫,但是這種行為就像重寫URL。 簡單,只需創建一個webrequest,獲取該webrequest的響應,然后將結果作為html返回到網頁。

如果您使用的是ASP.Net MVC,則可能會有所幫助,

public virtual ActionResult RealUrl()
        {
          var request = WebRequest.Create("http://rewriteUrl.com/blahblah");
        // If required by the server, set the credentials.
        request.Credentials = CredentialCache.DefaultCredentials;
        // Get the response.
        var response = (HttpWebResponse)request.GetResponse();
        // Display the status.
        // Get the stream containing content returned by the server.
        var dataStream = response.GetResponseStream();
        // Open the stream using a StreamReader for easy access.
        if (dataStream == null) return null;
        var reader = new StreamReader(dataStream);
        // Read the content.
        var responseFromServer = reader.ReadToEnd();

        reader.Close();
        dataStream.Close();
        response.Close();
        return Content(responseFromServer); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM