簡體   English   中英

Nginx重寫-上次被忽略嗎?

[英]Nginx Rewrite - Last Ignored?

在Apache中,此邏輯可以正常工作-根據文檔,Nginx也可以。

location = /login/ {    rewrite ^(.*)$ /login.php last; }
rewrite ^/([^/]*)/$ /page.php?c=$1 last;

理想情況下,domain.com / login /可以直接登錄login.php

其他任何操作都將直接指向page.php,並傳遞詳細信息。 但是,相反-所有請求都定向到page.php

缺少什么嗎? :)

我猜想,您錯誤地認為指令的順序很重要,但實際上並不重要。 Nginx嚴格執行指令,並且在嘗試匹配location之前先進行“服務器級” rewrite

您應該避免“服務器級” rewrite 在這種情況下,我會寫:

location / {
    rewrite ^/([^/]*)/$ /page.php?c=$1;
}

location = /login/ {
    rewrite ^ /login.php;
}

# I guess you have something like this too
location ~ \.php$ {
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM