我想通過爲根目錄文件創建一個url重寫規則(以擺脫與繼承相關的問題)併除去子目錄的靜態文件處理程序來使其工作。
請將下列應用程序的根目錄web.config
或修改相應的現有的,不要忘了,如果還有其他的規則移動到合適的位置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ROOT_FILE_CHECK">
<match url="^[^/]*$" />
<conditions>
<add input="{DOCUMENT_ROOT}\{R:0}" matchType="IsFile" />
<!-- allowed extensions -->
<add input="{REQUEST_FILENAME}" pattern="\.asp$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="\.allowed1$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="\.allowed2$" negate="true" />
<!-- allowed extensions -->
</conditions>
<action type="CustomResponse" statusCode="404" statusReason="Not Found" statusDescription="." />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
,並放置在要阻止對文件的訪問每個子目錄下面web.config
。這一個刪除靜態文件處理程序,使該目錄中的靜態文件變得不可訪問。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="StaticFile" />
</handlers>
</system.webServer>
</configuration>
感謝@庫爾 - TIGIN。但是,我得到錯誤代碼0x8007000d 500.19錯誤。請注意,這是經典的asp。經典的ASP識別web.config文件? – amindomeniko
@amindomeniko web.config是關於IIS7 +的,所以它不重要的asp或asp.net甚至php。 '500.19'表示你的web.config文件無效。如果沒有最後一個'web.config'就很難說清楚,用你當前的'web.config'來更新這個問題。 –
之前沒有web.config。儘管如此,當我在IIS中使用規則重寫UI創建規則時,問題就解決了。任何想法爲什麼這個webconfig返回一個錯誤? – amindomeniko