Nginx use path as PHP parameter
I want to use URL path as URL param here is what I want to achieve
whenever a user enters example.com/abc
then the request should automatically redirect to example.com/?abc
without modifying the URL at the user's end. Currently nginx treating /abc
as path and throwing 404.
Additionally, existing files should not be redirected, e.g. example.com/demo.php
should be served as it is.
Solution 1:
You need to use a rewrite engine... for example like this (in server config):
After some research, this worked for me -
location / {
...
if (-f $request_filename) {
break;
}
rewrite ^/([^?].*) /?$1 permanent;
}
OLD answer -
server {
...
if (!-f $request_filename){
rewrite ^/(.*) /?$1;
}
...
}
Solution 2:
Try the following:
server {
root /example/path;
server_name example.com;
try_files $uri $uri/ /index.php?$uri;
}
This will make first nginx check if a file or directory matching the request URI part exists, and nginx serves it.
If there is no match, then the request is passed to /index.php
with URI part as query argument.