Translating from Apache
There is a long history of writing rewrite rules for the powerful mod_rewrite
module of Apache, and most resources on the Internet are focused on these rules. When encountering the rewrite rules in Apache's format, they can be translated into a form that NGINX can parse by following a few simple rules.
Rule #1 – Replacing directory and file existence checks with try_files
Encounter an Apache rewrite rule of the following form:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L]
This can best be translated into an NGINX configuration as follows:
try_files $uri $uri/ /index.php?q=$uri;
These rules state that when the filename specified in the URI is neither a file nor a directory on disk, the request should be passed to the index.php
file lying in the current context's root and given the q
argument with a value matching the original URI.
Before NGINX had the try_files
directive, there would be no...