![htaccess rewrite 转换为 nginx 配置有循环](https://linux22.com/image/697509/htaccess%20rewrite%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%20nginx%20%E9%85%8D%E7%BD%AE%E6%9C%89%E5%BE%AA%E7%8E%AF.png)
我将网站从 apache 服务器迁移到 nginx 服务器,需要转换 .htaccess 规则。
我有一个重写规则,就像在.htaccess中一样:
RewriteCond %{HTTP_HOST} !=example.com
RewriteCond %{HTTP_HOST} (.+)\.(\w+)
RewriteRule ^/?$ ?q=landingpage/%1%2 [L,QSA]
这将执行以下操作,用于域别名:
- 如果域名不是 example.com (即 foo.bar)
- 获取点 (foo bar) 前后的变量
- 提供 foo.bar?q=landingpage/foobar
我将其转换为以下 nginx 配置:
location / {
if ($http_host != "example.com"){
rewrite ^/?$ /?q=landingpage/%1%2 break;
}
}
然而,这是
不完整,因为它没有定义变量(foo 和 bar)
这会导致循环,其中 URL 会变得很长,不断重复
- 它使用不推荐的“ifs”(似乎 try_files 更好)
我无法让它工作。我是 nginx 新手,希望得到帮助,谢谢。