gpt4 book ai didi

c# - ASP.NET Core 2.0 - 提供没有扩展名的文件

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:49 24 4
gpt4 key购买 nike

我也在尝试在我的网站上设置 Let's Encrypt。我在网上找到了很多解决方案,不幸的是没有一个对我有用。

我在使用 Apache 2 和 .NET Core 2.0 的 Debian 8.7。

我曾尝试将 web.config(及其一些变体)放置在 .well-known/acme-challenge 文件夹中,但没有成功。我已经尝试了这些链接的解决方案(主要是添加一个 web.config 并添加一些代码):

https://github.com/ebekker/ACMESharp/issues/15
Set web.config for letsencrypt - Certify with Asp.NET Core and Angular 2 (Javascript-services)

我看过这个,但它是针对已知文件名的,LE 给出了随机文件名,所以我不知道如何实现它: asp.net core - How to serve static file with no extension

我知道 URL 错误不是问题,就像我向文件添加扩展名(例如 .t)然后将其添加到网站正确返回文件的 URL 一样。

这是 acme-challenge 中的 web.config:

<?xml version = "1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".*" mimeType="text/plain" />
</staticContent>
<handlers>
<clear />
<add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
</handlers>
</system.webServer>
</configuration>

这是整体的 web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\my.site.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>

这是添加到 Configure() 的代码:

app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider("/var/aspnet/miadola/wwwroot/.well-known"),
RequestPath = new PathString("/var/aspnet/miadola/wwwroot/.well-known"),
ServeUnknownFileTypes = true // serve extensionless files
});

最佳答案

你的代码看起来不错,除了 1 行。

app.UseStaticFiles(new StaticFileOptions {
FileProvider = new PhysicalFileProvider("/var/aspnet/miadola/wwwroot/.well-known"),
RequestPath = new PathString("/.well-known"),
ServeUnknownFileTypes = true // serve extensionless files
});

看出区别了吗?该行是 RequestPath。该行是您在浏览器中输入的域名后的内容。

所以目前你的解决方案点在你去的时候有效:

www.example.com/var/aspnet/miadola/wwwroot/.well-known


也不需要 web.config 文件,那些是在 IIS (windows) 下运行时使用的。

关于c# - ASP.NET Core 2.0 - 提供没有扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com