让我们说我在Rails应用程序中有一个POST端点,在其中它得到一个称为state的参数,该参数将是200或503的整数。
如何如何使Robots.txt文件以该POST端点的给定状态响应,我的意思是我需要一种方法来控制仅该文件(Robots.txt)的响应代码,具体取决于在该POST端点上。
顺便说一句,问题不在于如何存储该状态或其他内容,而仅在于如何更改公共文件的响应代码?
有可能吗?
为此,我现在想尝试的是让控制器动作与robots.txt路由匹配,但是我觉得这样做很愚蠢。
答案 0 :(得分:1)
是的,如果您希望Rails参与确定给定URL的响应,那么您将需要定义一个控制器操作来处理这些请求。
您可以使用send_file
来实际执行文件发送部分。
根据您的Web服务器的配置,可能您需要将实际的robots.txt
文件存储在public/
之外的其他位置,否则,即使没有机会获得Rails,也可能会得到它的服务参与其中。
您可以根据您想要的响应代码安排在运行时重写您的nginx(例如)配置文件...但是我认为 会很愚蠢要做。
更实用的中间立场是让Rails创建或删除标记文件,然后根据该文件是否存在在nginx配置中使用条件文件。不过,这将是一个nginx问题……如果您拥有多台服务器,则会变得很复杂。