使用查询参数将NGINX重写为文件
我希望nginx将url重写为特定的php文件,这些文件可以由第一个斜杠之前的内容确定 例如:使用查询参数将NGINX重写为文件,nginx,nginx-location,Nginx,Nginx Location,我希望nginx将url重写为特定的php文件,这些文件可以由第一个斜杠之前的内容确定 例如: location / { try_files $uri $uri/ $uri.html @php; } location @php { rewrite ^(/[^/]+)$ $1.php last; rewrite ^(/[^/]+)/(.*)$ $1.php?q=$2 last; } location ~ \.php$ { try_files $uri =404;
location / {
try_files $uri $uri/ $uri.html @php;
}
location @php {
rewrite ^(/[^/]+)$ $1.php last;
rewrite ^(/[^/]+)/(.*)$ $1.php?q=$2 last;
}
location ~ \.php$ {
try_files $uri =404;
...
}
testing.com/test
或test.com/test
将被重写为test.php
testing.com/test2/variable/other variable
将被重写为/test2.php?q=variable/other variable
GET
参数
我目前尝试的是:
location / {
try_files $uri $uri/ $uri.html $uri.php$is_args$query_string;
}
这适用于我上面显示的示例1,但返回一个404,例如示例2,带有更复杂的URL。您可以将命名的
位置
与try_files
指令一起使用,以实现一个或多个rewrite
语句。有关详细信息,请参阅
例如:
location / {
try_files $uri $uri/ $uri.html @php;
}
location @php {
rewrite ^(/[^/]+)$ $1.php last;
rewrite ^(/[^/]+)/(.*)$ $1.php?q=$2 last;
}
location ~ \.php$ {
try_files $uri =404;
...
}
rewrite
语句按顺序计算。第二个try\u files
语句确保PHP文件实际存在,并且要避免