nginx 重定向,url 中帶斜杠

nginx 重定向,url 中帶斜杠

我正在為我們的行銷工作做一個 RYO 二維碼管理系統,讓所有二維碼都命中指定的 url 結構,然後我將透過 nginx 將其轉發到指定位置。

我正在嘗試設定以下結構:

server {
      listen 80;
      server_name mydomain.com/c/m/b/1;
      return 301 $scheme://myotherdomain.com$request_uri;
}

當我啟動 nginx 時,我的伺服器名稱行因包含可疑字元而被呼叫。網域中可以使用斜線嗎?

答案1

這是基於對您可能想要什麼的猜測。

如果你想將所有http://mydomain.com/URL 重新導向到http://myotherdomain.com/,你應該這樣做:

server {
    listen 80;
    server_name mydomain.com;

    rewrite ^ http://myotherdomain.com$request_uri permanent;
}

如果您只想在某個路徑中重定向,可以使用該location指令:

server {
    listen 80;
    server_name mydomain.com;

    location /c {
        rewrite ^ http://myotherdomain.com$request_uri permanent;
    }
}

答案2

不,斜線不是網域名稱的有效部分,或者它們不能用於分隔路徑和協定部分(http://) 的 URL。

查看擴展參數(正規表示式)是否server_name配置語句有幫助。

相關內容