
我正在為我們的行銷工作做一個 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
配置語句有幫助。