nginx - Nginx 重定向规则没有影响
问题描述
尝试做一个简单的重定向:
rewrite https://url.example.com(.*) https://example.com/plugins/url permanent;
任何时候url.example.com
被击中,我都希望它重定向到那个特定的路径。
编辑:
将尝试更好地解释这一点,因为我试图从另一个重定向到特定域。
server {
server_name example.com plugin.example.com;
root /home/www/example.com/public;
}
我看到location
用于重定向,例如:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
但不确定如何在我的情况下使用它,即更改plugin.example.com
为example.com/plugin
.
例如:
http://plugin.example.com
https://plugin.example.com
https://plugin.example.com/blah
https://plugin.example.com/blah/more
所有这些都应该重定向到:
https://example.com/plugin
解决方案
如果原始 URL 是https://url.example.com
orhttps://url.example.com/
那么rewrite
andlocation
指令使用的规范化 URI 将是/
. 方案、主机名和查询字符串都已被删除。
要执行永久重定向到具有不同主机名的 URL:
使用rewrite
(详见本文档):
rewrite ^/$ https://example.com/foo permanent;
或使用location
and return
(有关详细信息,请参阅本文档):
location = / {
return 301 https://example.com/foo;
}
第二种解决方案更有效,因为没有要处理的正则表达式。
如果原始 URL 包含查询字符串:rewrite
除非添加尾随,否则将自动附加它?
。遗嘱不是,但可以通过return
附加来添加$is_args$args
。
如果方案和主机名不变,那么这两个语句都可以简化:
rewrite ^/$ /foo permanent;
或者:
location = / {
return 301 /foo;
}
推荐阅读
- c# - 如何使用 c# 使用计时器运行不同的进程
- c# - 如何增加 UWP 日历日期选择器的高度?
- javascript - 根据单击的切换按钮更改 DIV 内容
- java - 如何在 Spring 中验证泛型类型
- multidimensional-array - 从 PowerDesigner 中的 SAP HANA 计算视图对物理数据模型进行逆向工程
- javascript - 角。如果值为 false,则在 textarea 中为数组对象添加下划线
- python - FlatBuffers:如何在 Python 中生成 name() 方法
- scala - 在不复制代码的情况下优雅地关闭不同的主管参与者
- python - `NoneType`-使用 BeautifulSoup 时出错
- c++ - 从 ui 文件中检索 Qwidget