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/;
}
我想子字符串 $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/;
}