【问题标题】:Transparent URL rewrite on NginxNginx 上的透明 URL 重写
【发布时间】:2015-04-21 05:10:20
【问题描述】:

在我的 Nginx 服务器上,我有一个 url 1

http://www.example.com/component/abc/categories

我希望它重写对 url 2 的请求

http://www.example.com/abc/categories

地址栏中没有更改 url 1。

我尝试了几个在配置文件中找到的示例,但没有结果。感谢您的帮助。

[update] 这是另一个尝试。如果我的表达方式正确,我认为 alias 将是正确的选择。这应该可以,但它会重定向到主页。我做错了什么?

location ~ ^/component/(.*)$ { alias /var/www/example.com/www/abc/$1; }

【问题讨论】:

  • 你尝试了什么?
  • 我试过了:location /component/ { rewrite ^/component/(.*)$ $scheme://www.example.com/$1 永久; } 但是这个重定向了 url 并改变了地址栏中的那个。
  • 不要将代码放入 cmets。编辑帖子
  • 对不起,我不知道我不能在 cmets 中发布代码。我已经更新了问题。
  • 试试这个location /component/ { alias /; }。 alias 是位置的替代品,而不是本地路径。

标签: nginx url-rewriting rewrite


【解决方案1】:

为什么不做最简单的方法呢?

location /component/ {
  rewrite ^/component(.*) $1 last;
}

【讨论】:

  • 谢谢,我知道这是正确的答案,尽管由于某种原因它无法在我的服务器上运行,就好像它从不解析 /component/ 块来执行该行一样。
  • 我 99% 确定您有正则表达式位置(如 *.php)。您可以使用location ^~ /component/ { ... } 来防止/component/ 的正则表达式位置
猜你喜欢
  • 1970-01-01
  • 2016-08-18
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 2017-12-18
  • 1970-01-01
相关资源
最近更新 更多