Nginx rewrite 使不同域名重定向到不同界面的问题

zqalyc · 2014年11月28日 · 最后由 zqalyc 回复于 2014年12月01日 · 7036 次阅读

w1.demo.com; w2.demo.com 这两个二级域名如何访问项目中的不同界面?

例如: 输入 w1.demo.com 访问 w1.html 界面,输入 w2.demo.com 访问 w2.html 界面

server {
listen 80;
server_name w2.demo.com;
if($host ~*  w2.demo.com)
 rewrite ^ http://w2.demo.com/?id=100
}

后台是根据 id 来判断调用相应的界面 上面的写法造成了死循环,或者有没有其他方式可以让 nginx 向后台传入参数 id 的值?

写 server_name。

server {
  listen       80;
  server_name  w1; #replace your DNS name
  server_name  w2.demo.com;
  root         /var/www/w2/public;
}

#1 楼 @ericguo 请问参数 id 要怎么传,页面是保存在数据库的,需要根据 id 获取

id 不是 rails 默认就会给你么?

class AiRelProgramPassDownsController < ApplicationController
  def show
    @ai_rel_program_pass_down = AiRelProgramPassDown.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @ai_rel_program_pass_down }
    end
  end
end

#3 楼 @ericguo id 不是通过 url 输入的,是想通过转发的时候传进去。 我在程序里面用 request.host 做判断解决了 谢谢啦

需要 登录 后方可回复, 如果你还没有账号请 注册新账号