微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AddApacheModRewrite 方法提示文件不存在当它存在时

如何解决AddApacheModRewrite 方法提示文件不存在当它存在时

只是试图在我的 .NET Core 3.1 Web 应用程序中放置一个 ApacheModRewrite 调用,无论我做什么,它一直告诉我该文件不存在。我已验证该文件存在于该位置,我已尝试创建自定义 PhysicalFileProvider,并尝试将该文件设置为 Content/copy Always,但无论我做什么,我都无法通过以下代码

 var options = new RewriteOptions()
          .AddApacheModRewrite(env.ContentRootFileProvider,env.ContentRootPath + ".htaccess");
       

错误

System.IO.FileNotFoundException: '文件 F:\Source\MyWebsite\htaccess.txt 不存在。'

其中 env.ContentRootFileProvider 解析为路径:“F:\Source\MyWebsite”,我再次确认 .htaccess 文件确实存在。我也尝试了各种不同的方法来访问 AddApacheModRewrite 中的文件路径,但我真的在这个问题上摸不着头脑。

我做错了什么?

解决方法

想通了。我不得不使用流阅读器,读取文件,然后才能应用它:

   using (StreamReader apacheModRewriteStreamReader 
           File.OpenText(env.ContentRootPath + "\\.htaccess")) 
   {                    
        var options = new RewriteOptions()
                          .AddApacheModRewrite(apacheModRewriteStreamReader);
                    
        app.UseRewriter(options);    
   }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。