我们正在运行Symfony应用程序,该应用程序的路由为:domain.tld/main-category/category/
出于SEO目的,他们希望在URL中包含如下过滤器:domain.tld/main-category/category/filters/price:0-100
所以基本上我们希望浏览器中的URL保持不变,但在Symfony中它应该去掉/filters/之后的所有内容,所以路由应该保持“domain.tld/main-category/category/"。
我尝试了这个确实工作,但我需要它的工作使用Symfony路线,但无法让它工作。
rewrite ^/.*/filters/.* /test.html last;
NGINX配置:
location ~ ^/index\.php(/|$) {
include fastcgi_params;
fastcgi_pass php_project:9000;
fastcgi_read_timeout 600s;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
1条答案
按热度按时间owfi6suc1#
PHP应用程序(如
index.php
)通常使用REQUEST_URI
参数来确定“route”。这在fastcgi_params
文件中定义为:一种解决方案是使用
map
指令操作此值。例如:
请注意,
map
必须放在server
区块之外。您不需要编辑
fastcgi_params
文件,只需确保fastcgi_param
语句出现在位置块中**include
语句之后**。