Mod rewrite nginx重写无法正常工作

Mod rewrite nginx重写无法正常工作,mod-rewrite,nginx,Mod Rewrite,Nginx,这是我的nginx重写规则: 重写^/([a-z]+)/([a-z]+)/$/index.php?app=$1&action=$2 visit/test/test/it可以工作,但visit/test/it不能重写为/index.php?app=test&action= 和var_dump($_GET)print:array(1){[“q”]=>string(6)“/test/”} 但是$\u GET['q']没有定义,为什么?因为它与规则不匹配,您的规则仅在只有应用程序和操作时有效,您可以在缺

这是我的nginx重写规则:

重写^/([a-z]+)/([a-z]+)/$/index.php?app=$1&action=$2

visit/test/test/it可以工作,但visit/test/it不能重写为/index.php?app=test&action=

和var_dump($_GET)print:array(1){[“q”]=>string(6)“/test/”}


但是$\u GET['q']没有定义,为什么?

因为它与规则不匹配,您的规则仅在只有应用程序和操作时有效,您可以在缺少操作时编写另一个规则以匹配,或者指定第二部分为可选部分 试试这个规则

rewrite ^/([a-z]+)/([a-z]+)? /index.php?app=$1&action=$2;