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

xan*_*der 53 iis iis-8

我使用IIS 8Windows 8.1.我有一个XML文件,我需要通过(servername)/(path)访问它

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

在返回带有错误的"物理路径"中是正确的文件路径,当我复制粘贴到"运行"时会打开正确的文件.

如果可能,请告诉我.

Pet*_*orf 95

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

 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <system.webServer>
         <staticContent>
             <mimeMap fileExtension="." mimeType="text/xml" />
         </staticContent>
     </system.webServer>
 </configuration>
Run Code Online (Sandbox Code Playgroud)

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

  • 对我来说``fileExtension =".*"`不起作用,但``fileExtension ="."`工作. (43认同)
  • 这个答案帮助我设置iOS Universal链接apple-app-site-association文件,以便我的网站正确提供服务.万分感谢! (5认同)
  • 没关系,我看到使用 application/json 是有效的 :) (2认同)

Mat*_*nco 16

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

在此输入图像描述

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

  • 你可以有 .在Windows的一个目录的开头只创建一个名为`.well-known.的目录.(explorer将删除最后一个点,你将留下`.well-known`) (2认同)
  • IIS 7+中的“ MIME类型”部分将使您也可以执行此操作。右键单击,添加一个扩展名`.`(仅一个点),其MIME类型为`text / plain`(用于acme-challenge)或`text / xml`(用于xml)。 (2认同)

RBT*_*RBT 8

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

  1. 转到您网站虚拟目录的MIME类型功能:

在此输入图像描述

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

在此输入图像描述

web.config根据@PeterHahndorf在其帖子中的建议,这些步骤有效地保存了对您的网站或虚拟目录(在您的网站下)的更改.

  • 引用RustyX:"对我来说fileExtension =".*"没有用,但是fileExtension ="."工作." (5认同)