簡體   English   中英

URL重寫

[英]URL rewriting

我正在使用regx進行URL重寫。 創建了一個XML文件,並將以下代碼寫入Global.ASAX文件

字符串sPath = Context.Request.Path;

    Context.Items["VirtualURL"] = sPath;
    Regex oReg;
    System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
    xmlDoc.Load(Server.MapPath("~/Rule.xml"));
    System.Xml.XmlElement _oRules = xmlDoc.DocumentElement;

    foreach (System.Xml.XmlNode oNode in _oRules.SelectNodes("rule"))
    {
        oReg = new Regex(oNode.SelectSingleNode("url/text()").Value);

        Match oMatch = oReg.Match(sPath);

        if (oMatch.Success)
        {
            sPath = oReg.Replace(sPath,
              oNode.SelectSingleNode("rewrite/text()").Value);
            break;
        }
    }
    Context.RewritePath(sPath);

虛擬URL是/ProductDatabaseCMS/Category/Product/A320.aspx

原始URL是/ProductDatabaseCMS/Product.aspx?PROD_ID=A320

product.aspx使用的母版頁具有/ProductDatabaseCMS/Main.master路徑,並且通過/ProductDatabaseCMS/App_Themes/Styles/Styles.css包含樣式表

當我嘗試使用超鏈接控件通過其他網頁打開product.aspx頁面時,樣式表在product.aspx頁面中不起作用,因為它需要路徑

/ProductDatabaseCMS/Category/Product/App_Themes/Styles/Styles.css和母版頁中的所有鏈接也采用相同的路徑

/ ProductDatabaseCMS /類別/產品/ ...

我不想包含/ Category / Product / ..,因為這兩個文件夾路徑是虛擬的。

解決方案是什么?


dupe: URL重寫

(答案:使用根相對路徑)

請幫忙查看您的配置/規則以供重寫者使用。

我懷疑盡管您只需要停止處理重寫規則頂部以.css結尾的所有URL。

不知道您正在使用哪個重寫器,我無法給出任何示例。

我同意teknohippy的觀點,圖像是否還不能正常工作? 我認為樣式表不在服務器上運行嗎?

您可以使用在服務器上運行的帶有〜/ url的rel標記來加載樣式表,或者僅使重寫規則僅適用於特定文件類型。

重寫規則更改可能是最好的,但是您可能會發現rel標簽更快?

〜/ yourpathtoyourcss.css

蒂爾達削減

暫無
暫無

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

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