[英]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.