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