簡體   English   中英

Orchard CMS-指向網絡共享文件的菜單鏈接

[英]Orchard CMS - menu link to network-shared file

我在Windows Server 2012,IIS 8.5,.NET 4.0上托管了一個Orchard 1.6站點。

我需要在Orchard菜單中添加指向網絡托管文件的鏈接,可從Web服務器訪問網絡共享-目標文件本身位於其他服務器上。 我在“自定義鏈接”菜單URL中放置了file://path/to/network/file ,但是站點的基本URL始終位於鏈接的前面。

例如,如果我的基本URL是http://example.com ,則鏈接變為http://example.com/file://path/to/network/file ,然后.NET不喜歡第二個:路徑-最重要的是錯誤的鏈接。 正斜杠,反斜杠或其他符號的組合不能阻止前置的基本URL。

要使此問題更加復雜,相同的URL方案在稍有不同的設置下也可以正常工作:Orchard 1.6,Windows Server 2008,IIS 7.0,.NET 4.0; Web服務器和目標網絡URL在同一服務器上。

有沒有一種方法可以強制Orchard使用給定的URL,而無需進行任何更改? 另外,構成最終鏈接的代碼在哪里?

使用“ HTML菜單項”代替“自定義鏈接”將原始HTML插入為鏈接確實可行,但這似乎是一種非常靈活的解決方法; 我必須為幾十個鏈接執行此操作,以后不一定要成為更改它們的人。

我研究了Orchard設置和IIS設置; 都沒有關於重寫鏈接的任何內容。 更改Orchard上的基本URL以匹配預期的目標服務器是行不通的(長期不可接受)。 我也嘗試過托管一個臨時本地文件( c:\\temp\\test.txt ),但是我什至無法在新設置中生成正確的file://目標。

升級到最新的Orchard(1.8.x)是不可行的解決方案(如果最終甚至可能成為解決方案)。

編輯:我應該澄清兩個站點都在Intranet上; 我知道與file://鏈接相關的安全隱患,以及使各種瀏覽器正確加載它們的問題,但是我想讓鏈接生成首先起作用。

編輯:問題源我弄清楚了為什么我自己的站點之間的鏈接處理不一致-我在第一個站點中寫了一小段Javascript,以剝離遇到的任何file://鏈接的應用程序基本URL。 我忘記了它在那里,並進行了硬編碼,僅刪除了某個基本URL,因此當我將網站移到另一個主機名時,它就壞了。

因此,在果園里沒有矛盾,只是我自己的錯誤記憶。

Orchard故意將菜單鏈接限制為mailto,tel,http和https協議,並排除所有其他鏈接,例如文件和ftp(請參閱navigationmanager.cs)。 如果要使用其他協議,則必須使用其他類型的菜單項,但是請記住,出於安全原因,文件協議是不安全的,並非所有瀏覽器都支持該文件協議(請參見例如http:// kb .mozillazine.org / Links_to_local_pages_do_not_work )。 自IE6 SP1起,甚至Internet Explorer也停止在Internet區域中支持它: http : //msdn.microsoft.com/zh-cn/library/aa767731( v=vs.85) .aspx

暫無
暫無

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

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