2013-01-18 55 views
0

我有一個網頁,託管在iis上的文件。當鏈接到的實例這些文件說我去隱藏Web服務器上文件的路徑

www.webpage.com/Documents/testdocuments/innerfolder/1.pdf 

我得到的文件備份,並在地址欄中輸入完整的URL。有沒有一種辦法能夠瀏覽器

www.webpage.com/Documents/testdocuments/innerfolder/1.pdf 

,並獲得例如

www.webpage.com/Webdocs/1.pdf 

在瀏覽器的URL。我的理論是讓

www.webpage.com/Documents 

的虛擬目錄,但我不知道如果我仍然能夠訪問我的文件,

www.webpage.com/Documents/testdocuments/innerfolder/1.pdf 

,或者如果我將不得不使用例如

www.webpage.com/Webdocs/testdocuments/innerfolder/1.pdf 

確實失敗了。我的最終目標是讓文件的物理路徑對用戶不可見。

任何想法將不勝感激。

感謝,

+0

你需要隱藏用戶路徑的目的是什麼? – MikeSmithDev

回答

3

既然你正在尋找只映射一個路徑到另一個你應該使用IIS url rewriting

<rewrite> 
    <rules> 
    <rule name="Map Docs" stopProcessing="true"> 
     <match url="^Webdocs/([_0-9a-z-]+)" /> 
     <action type="Rewrite" url="Documents/testdocuments/innerfolder/{R:1}" /> 
    </rule> 
    </rules> 
</rewrite> 

另一種方法是asp.net url routing。但這對你所需要的東西來說是一種矯枉過正。

+0

+1使用URL重寫模塊,但我認爲你有匹配和行動的URL錯誤的方式。如果我已經正確理解了這個問題,那麼請求將會是webpage.com/Webdocs/1.pdf,它將需要在webpage.com/Documents/testdocuments/innerfolder/1.pdf處提供內容 - 您可能還想添加一個stopProcessing =「true」規則阻止它處理任何可能稍後添加的規則(即使目前沒有任何規則)。 – pwdst

+0

@pwdst你是對的。我交換了比賽和行動。更正了答案。謝謝! – nunespascal

相關問題