First of all, nginx doesnât use .htaccess (thatâs an Apache file). Secondly, the config you posted appears to be missing a few pieces of information, such as how to process php files.
Speaking of PHP, youâll need to know if your fastcgi_pass is setup to use ports or sockets. The code toddsby linked is assuming sockets, and iâll link one for ports.
Assuming your server name is âyoursite.localâ rather than âdocumentationâ, consider the following:
listen 80;
server_name yoursite.local;
root /srv/www/kirby;
index index.php index.html;
That section tells nginx which port the server is listening on, the domain name itâs responding to, the location of server files, and the default files to serve if not specified by the web browser.
location ~ ^/content/(.*).(txt|md|mdown)$ {
rewrite ^/content/(.*).(txt|md|mdown)$ /error redirect;
}
location ~ ^/site/(.*)$ {
rewrite ^/site/(.*)$ /error redirect;
}
location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
location /panel {
try_files $uri $uri/ /panel/index.php?$uri&&$args;
}
location ~ /\.ht {
deny all;
}
Those are the various rules found in the .htaccess file, but rewritten for nginx.
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
}
This tells nginx what to do with PHP files (pass them to fastcgi, which is listening on port 9000).
All of that would go in your server block.
The big question, however, is why your configuration is attempting to serve ssl pages. My guess is that if you were to look in your sites-available directory for nginx, youâll find multiple server configurations that are overlapping on basic settings like listening ports and server names. Check that directory and see what you have setup.