Nginx:如何将 URL 子目录重写为查询参数?
Nginx: how do I rewrite a URL subdirectory to a query parameter?
我正在尝试在 WordPress 网站 运行 Nginx 中重写一个 URL 以便将最后一个子目录转换为 GET 参数:
http://mydomain/property/aid/1234/ to http://mydomain/property/?aid=1234/
我尝试在 WordPress 中使用 add_rewrite_rule
,但没有成功,因为它没有创建新的 $_GET
条目。
然后我尝试了以下 Nginx 规则:
rewrite ^(/property/.*)/aid/(.*)$ //?aid= break;
好像一点效果都没有。
有什么建议吗?
假设文档根目录是/www/yourproject/public
。然后 PHP-FPM 的配置可能如下所示:
rewrite "^/property/aid/([0-9]+)$" /property/?aid= break;
location /property/ {
root /www/yourproject/public;
fastcgi_pass unix:/tmp/php-fpm-yourproject.sock;
fastcgi_index index.php;
include fastcgi_params;
}
在此配置中,请求由 /www/yourproject/public/property/index.php
处理。
样本index.php
<?php
var_dump($_GET);
/property/aid/1234
的示例输出
array(1) {
["aid"]=>
string(4) "1234"
}
例如,您可以用 proxy_pass
替换 fastcgi_pass
和 fastcgi_index
指令。
我正在尝试在 WordPress 网站 运行 Nginx 中重写一个 URL 以便将最后一个子目录转换为 GET 参数:
http://mydomain/property/aid/1234/ to http://mydomain/property/?aid=1234/
我尝试在 WordPress 中使用 add_rewrite_rule
,但没有成功,因为它没有创建新的 $_GET
条目。
然后我尝试了以下 Nginx 规则:
rewrite ^(/property/.*)/aid/(.*)$ //?aid= break;
好像一点效果都没有。
有什么建议吗?
假设文档根目录是/www/yourproject/public
。然后 PHP-FPM 的配置可能如下所示:
rewrite "^/property/aid/([0-9]+)$" /property/?aid= break;
location /property/ {
root /www/yourproject/public;
fastcgi_pass unix:/tmp/php-fpm-yourproject.sock;
fastcgi_index index.php;
include fastcgi_params;
}
在此配置中,请求由 /www/yourproject/public/property/index.php
处理。
样本index.php
<?php
var_dump($_GET);
/property/aid/1234
array(1) {
["aid"]=>
string(4) "1234"
}
例如,您可以用 proxy_pass
替换 fastcgi_pass
和 fastcgi_index
指令。