IIS:如何在没有扩展名的情况下提供文件?

时间:2013-11-13 10:08:49

标签: iis iis-8

我在IIS 8上使用Windows 8.1。我有一个XML文件,我需要通过(servername)/(path)

访问它

(路径)由其他人预定义,不包含扩展名。我尝试了删除文件名的.xml文件的简单解决方案,但是IIS returns HTTP Error 404.3 - Not Found

“物理路径”中返回错误的是正确的文件路径,当我复制粘贴到“运行”时会打开正确的文件。

如果可能,请告诉我。

3 个答案:

答案 0 :(得分:86)

假设(路径)是您计算机上的物理目录,请在该目录中创建一个新的web.config文件,其中包含以下内容:

 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <system.webServer>
         <staticContent>
             <mimeMap fileExtension="." mimeType="text/xml" />
         </staticContent>
     </system.webServer>
 </configuration>

您告诉IIS,对于此目录,任何没有其他定义扩展名(MIME类型)的文件都应被视为xml文件。同一路径中的其他文件类型仍应有效。

答案 1 :(得分:16)

也可以在IIS 6中完成/不使用web.config,而是使用管理GUI在此处为扩展.添加MIME类型:

enter image description here

例如,要提供.well-known/acme-challenge令牌,请创建一个名为.well-known的虚拟目录,并让它从物理目录中获取其内容(在Windows中不能包含带有前导点的名称)。然后在此目录中为扩展名text/plain添加. MIME类型,您可以手动获取当前由旧IIS提供服务的域的新letsencrypt证书。

答案 2 :(得分:6)

手动更改配置有时会有风险。 IIS提供了一种通过IIS管理器更新MIME类型的方法,如下所示。快照适用于安装在Windows 10盒子上的IIS v10:

  1. 转到您网站虚拟目录的MIME类型功能:
  2. enter image description here

    1. 设置mime类型以支持所有没有扩展名的文件:
    2. enter image description here

      这些步骤有效地保存了@PeterHahndorf在post中建议的对您网站或虚拟目录{在您的网站下} var $elements = $(".foobar"); $arr = [1,2,3,4]; $elements.each(function(e){ $(this).html($arr[e]); }); 的更改。