Im new с Nginx и для моего проекта мне нужно переписать все запросы в index.php, который является обработчиком запросов. Я сделал это с файлом .htaccess в Apache, но теперь я хотел сделать его совместимым с Nginx. Я знаю, что на Nginx не существует файлов .htaccess, поэтому мне нужно отредактировать файл виртуального хоста в / etc / nginx / sites-available / default, но я не знаю, что эквивалентно Nginx для моих старых правил Apache. Вот содержимое моего старого файла .htaccess:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !/index\.php RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^([^?]*)$ /index.php [QSA,NS,L]
С этим на Apache все запросы были переписаны на index.php, независимо от того, являются ли они скриптами PHP, статическими файлами или несуществующими файлами (в моем проекте есть также некоторые виртуальные пути, такие как / :: API / или / :: ADMIN / и root shorcut / ~ /), как я могу это сделать с Nginx?
В документах nginx изложена директива rewrite: http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
Простой ответ:
location / { rewrite ^(.*)$ /index.php?$1 last; }
Отредактировано, чтобы добавить бит $ 1. Спасибо, @ bob0t