Nginx 可以对 $request_uri 进行子字符串化吗?

Can Nginx substring the $request_uri?

我想子字符串 $request_uri
例如, URL 地址 is:https://example/surveyssl/survey
如果我使用 $request_uri,它将得到“surveyssl/survey”
我可以对“surveyssl”添加子字符串,以便我只能获得“survey”吗?

location /surveyssl/survey{
             proxy_pass http://ssldev/surveyssl/index.php/$request_uri;
             #It will fail because the url output is 
             #http://ssldev/surveyssl/index.php/surveyssl/survey
             #but I want to get this url:
             #http://ssldev/surveyssl/index.php/survey
 }

根据您显示的示例,您能否尝试以下操作。请确保在测试您的 URL 之前清除您的浏览器缓存。第一个规则集非常具体,只捕获 surveyssl;第二条规则将其设置为动态规则,它将捕获 surveyssl 之后的任何内容。

location ~ /surveyssl/(survey/?) {
             proxy_pass http://ssldev/surveyssl/index.php/;

 }

编辑: 要使其动态化,请尝试遵循以下规则:

location ~ /surveyssl/([\w-]+/?) {
             proxy_pass http://ssldev/surveyssl/index.php/;

 }