ASP.NET Core 2.0 MVC应用阻止Plesk网站统计访问的解决求助
解决ASP.NET Core 2.0 MVC部署Plesk后无法访问webstat的问题
我之前也碰到过完全一样的状况——ASP.NET Core默认会接管服务器收到的所有请求,包括Plesk用来提供统计服务的plesk-stat/webstat路径,这就导致IIS把这个请求转发给了你的MVC应用,但你的应用里根本没有对应的路由配置,所以直接返回404。咱们只需要修改web.config,让这个特定路径绕过ASP.NET Core的处理就行,具体操作如下:
1. 找到并打开网站根目录的web.config
这个文件是ASP.NET Core发布时自动生成的,一般就在你上传到虚拟主机的应用根目录里。
2. 修改URL重写规则
在web.config的<system.webServer> -> <rewrite> -> <rules>节点下,添加一条优先执行的规则,告诉IIS跳过所有以plesk-stat开头的请求,不要转发给ASP.NET Core应用处理。
修改后的web.config关键部分示例如下:
<system.webServer> <rewrite> <rules> <!-- 新增:跳过Plesk统计路径的请求 --> <rule name="Skip Plesk Stat" stopProcessing="true"> <match url="^plesk-stat/(.*)" /> <action type="None" /> </rule> <!-- 保留原来的ASP.NET Core转发规则 --> <rule name="ASP.NET Core" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="dotnet.dll" /> </rule> </rules> </rewrite> <!-- 其他原有节点保持不变 --> </system.webServer>
3. 保存并验证
- 保存修改后的
web.config,上传回虚拟主机覆盖原文件 - 可以在Plesk控制面板里重启一下网站,或者等待IIS自动加载新配置
- 现在访问
https://example.com/plesk-stat/webstat/,应该就能正常打开Plesk的网站统计页面了
原理说明
这条新增的规则会优先检查请求URL是否以plesk-stat/开头,如果匹配成功,就直接停止后续的重写处理,让IIS把这个请求交给Plesk内置的统计服务响应,而不是转发给你的ASP.NET Core应用。这样就不会触发MVC的路由系统,自然也就不会出现404错误了。
内容的提问来源于stack exchange,提问作者jjkk
相关产品推荐
相关产品推荐

