我使用 IIS 8对 Windows 8.1。我有一个 XML文件,我需要有它通过 (servername)/(path)访问
IIS 8
Windows 8.1
XML
(path) 是由其他人预定义的,不包含扩展名。我尝试了简单的解决方案。Xml 文件的文件名,但是 IIS returns HTTP Error 404.3 - Not Found
IIS returns HTTP Error 404.3 - Not Found
在返回的 “物理路径”错误是正确的文件路径,当我复制粘贴到 Run 打开正确的文件。
如果可能的话,请告诉我。
假设(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 文件:
IIS Management Scripts and Tools
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是该网站下的目录。
Default Web Site
.well-known
它也可以在 IIS6中完成/不使用 web.config,但是在这里使用管理 GUI 为扩展 .添加 MIME 类型:
web.config
.
例如,为了服务于 .well-known/acme-challenge令牌,创建一个名为 .well-known的虚拟目录,并让它从物理目录中获取其内容(物理目录不能在窗口中使用带有前导点的名称)。然后,在这个目录中为扩展 .添加一个 text/plain MIME 类型,您就可以为当前由旧 IIS 服务的域手动获取新的 letsencrypt证书。
.well-known/acme-challenge
text/plain
letsencrypt
手动更改配置可能容易出错。因此,Internet Information Server (IIS)控制台 GUI 为更新 MIME 类型提供了一种更简单、无错误的方法。请按照以下步骤:
打开 IIS
在左侧导航窗格中展开网站的节点。
选择应用程序或虚拟目录。
双击右窗格中 IIS部分下的 MIME 类型特性:
单击 行动面板中的 Add..链接。设置哑剧类型以支持所有不带扩展名的文件。然后单击 OK:
在幕后,这些步骤按照 PeterHahndorf 的职位中的建议更改应用程序的 Web.config文件或虚拟目录(在您的网站下)。
注意 : 上面步骤中显示的屏幕截图是从具有 IIS v10的 Windows 10机器上截取的。
对我来说,我只想提供一个文件 所以我只是添加了一个简单的重写,因为这里发布的其他方法由于某些原因无法工作
<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>