IIS:如何提供一个没有扩展名的文件?

wa7juj8i  于 2022-11-12  发布在  其他
关注(0)|答案(4)|浏览(333)

我正在Windows 8.1上使用IIS 8。我有一个XML文件,我需要通过 (服务器名)/(路径) 访问它

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

“物理路径” 中,返回的错误是正确的文件路径,当我复制粘贴到“运行”时,将打开正确的文件。
请让我知道这是否可能。

7gyucuyw

7gyucuyw1#

假设(path)是计算机上的物理目录,则在该目录中创建一个新的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文件。同一路径中的其他文件类型仍应有效。
如果您安装了Windows功能IIS Management Scripts and Tools,则可以使用PowerShell创建这样的web.config文件:

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/.well-known'  -filter "system.webServer/staticContent" -name "." -value @{fileExtension='.';mimeType='text/xml'}

在这个例子中,Default Web Site是网站的名称,而.well-known是该站点下的目录。

6yt4nkrj

6yt4nkrj2#

也可以在IIS 6中完成此操作/无需使用web.config,而是使用管理GUI为扩展名.添加MIME类型,如下所示:

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

1l5u6lss

1l5u6lss3#

手动更改配置可能容易出错。因此,Internet Information Server(IIS)控制台GUI提供了一种更简单且无错误的方法来更新MIME类型。请按照以下步骤操作:
1.打开IIS
1.在左侧导航窗格中展开您的网站节点。
1.选择应用程序或虚拟目录。
1.双击右窗格中IIS部分下的MIME类型功能:

1.单击操作窗格中的“添加..”链接。设置mime类型以支持所有不带扩展名的文件。然后单击“确定”:

在后台,这些步骤会按照PeterHahndorf's post中的建议更改应用程序的web.config文件或虚拟目录(在您的网站下)。

注意:上述步骤中显示的屏幕截图取自安装了IIS v10的Windows 10计算机。

wfveoks0

wfveoks04#

对我来说,我只想服务一个文件,所以我所做的只是添加一个简单的重写,因为这里发布的其他方法由于某些原因而不起作用

<system.webServer>
      <rewrite>
          <rules>
              <rule name="apple-app-site-association" patternSyntax="ExactMatch">
                  <match url="apple-app-site-association" />
                  <action type="Rewrite" url="/apple-app-site-association.txt" />
              </rule>
          </rules>
      </rewrite>
  </system.webServer>

相关问题