nginx - rewrite

最後更新: 2024-02-08

介紹

Module: ngx_http_rewrite_module

它提供了

  • break
  • if
  • return
  • rewrite
  • rewrite_log
  • set

目錄


return

 

Syntax

return code [text];
return URL;
return code URL;

code

The non-standard code 444 closes a connection without sending a response header.

URL

/webmail/

 * Default 係用 302 Moved Temporarily 的

# 更好的寫法

$scheme://$host$request_uri;

$host       “Host” request header field

此方法可以解決 Port forward 的問題 (9080 -> 80)

$scheme://$host:9080$request_uri;

 

 


應用

 

www -> non-www

server {
  server_name www.datahunter.org;
  return 301 $scheme://domain.com$request_uri;
}
server {
  server_name datahunter.org;
  [...]
}

http -> https

server {
       listen         80;
       server_name    my.domain.com;
       return         301 https://$server_name$request_uri;
}

建議用

return         301 https://$host$request_uri;

因為有機會 "server_name  _;"

 

 

Creative Commons license icon Creative Commons license icon