在Apache中,这种逻辑运行良好 - 根据文档,也可以使用Nginx。
location = /login/ { rewrite ^(.*)$ /login.php last; }
rewrite ^/([^/]*)/$ /page.php?c=$1 last;
理想情况下,domain.com/login/会指向login.php
其他任何内容都会指向page.php,并传递细节。 但是,所有请求都定向到page.php
缺少什么? :)
答案 0 :(得分:0)
我想,你错误地认为指令的顺序很重要,但事实上并非如此。 Nginx具有严格的指令执行顺序,“服务器级”rewrite
在尝试匹配location
之前有效。
您应该避免使用“服务器级”rewrite
。在这种情况下,我会写:
location / {
rewrite ^/([^/]*)/$ /page.php?c=$1;
}
location = /login/ {
rewrite ^ /login.php;
}
# I guess you have something like this too
location ~ \.php$ {
...
}