gpt4 book ai didi

ruby-on-rails - 如何消除 ActionController::UnknownHttpMethod 错误?

转载 作者:可可西里 更新时间:2023-11-01 16:29:28 27 4
gpt4 key购买 nike

在我的 Rails 生产网站上,我有时会遇到十几个错误:

An ActionController::UnknownHttpMethod occurred in #:

TRACK, accepted HTTP methods are OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, VERSION-CONTROL, REPORT, CHECKOUT, CHECKIN, UNCHECKOUT, MKWORKSPACE, UPDATE, LABEL, MERGE, BASELINE-CONTROL, MKACTIVITY, ORDERPATCH, ACL, SEARCH, MKCALENDAR, and PATCH

我想这是当机器人使用 Rails 无法处理的 HTTP 方法访问我的站点时(在我的例子中,它主要是 OPENVASTRACKDEBUGTRACKINDEX,还有奇怪的方法,例如 WMIXLVXM)。

有没有办法以任何方式静音这些消息?我仍然不确定这是 Rails 问题还是 Nginx 问题。

我正在使用自定义 Controller 向用户呈现自定义错误页面:

Rails.application.routes.draw do

%w(404 500).each do |status|
match status, :to => 'errors#show', :status => status, :via => :all
end

...

end

class ErrorsController < ApplicationController

def show
status = params[:status] || 500
@title = "Error"
render(:status => status, :template => "errors/show.html.erb")
end

end

但我的自定义 Controller 可能不会导致错误?

感谢您的帮助。

最佳答案

因为这些是您无论如何都不会处理的请求,更好的方法是在 nginx 级别限制 https 方法,这样这些请求就根本不会命中:

server {
# (your vhost for this app)

if ($request_method !~ ^(GET|HEAD|PUT|POST|DELETE|OPTIONS|PATCH)$ ){
return 405;
}
}

关于ruby-on-rails - 如何消除 ActionController::UnknownHttpMethod 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55639558/

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