gpt4 book ai didi

ruby-on-rails - rack-rewrite 将所有子域重定向到根域(root 除外)

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:12 26 4
gpt4 key购买 nike

怎么做:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

在 rack-rewrite 语法中?

最佳答案

你可以为此创建一个新的中间件

class SubdomainToWwwMiddleware
def initialize(app)
@app = app
end

def call(env)
request = Rack::Request.new(env)
if !request.host.starts_with?("www.")
[301, { "Location" => request.url.gsub(/\/\/([^\.]*)/, "//www") }, self]
else
@app.call(env)
end
end
end

这是未经测试的,但应该会让您朝着正确的方向前进。您可能希望添加一个条件,不仅要检查 www.example.com,还要检查 example.com。在这种情况下,上面的中间件目前可能会崩溃。

你可以把它放在/lib/middleware/subdomain_to_www_middleware.rb中,添加

config.autoload_paths += %W( #{ config.root }/lib/middleware )

到你的config/application.config,和

config.middleware.use "SubdomainToWwwMiddleware"

到你的config/environments/production.rb

关于ruby-on-rails - rack-rewrite 将所有子域重定向到根域(root 除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13398645/

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