I'm converting my mediawiki site to use nginx as a frontend for static files with apache on the backend for php. I've gotten everything working so far except for when I view the root directory "example.com" it tries to serve a directory listing and gives a 403 error since I have that disabled and don't have an index file there.
The apache rewrite rule I have in place right now is simply:
RewriteRule ^$ /wiki/Main_Page [L]
I tried something similar with a location directive in nginx, but it's not working:
location = / {
rewrite "^$" /wiki/Main_Page;
}
The rest of my location directives are:
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/wiki/(.*)$ /w/index.php?title=$1&$args;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri /w/index.php?title=$1&$args;
expires max;
log_not_found off;
}
location ~ \.php?$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
I can simply put an index.php file with header('Location:') in it, but I'd rather just do it properly with a rewrite rule.
All the examples I've found online for running mediawiki with nginx run the wiki as wiki.example.com instead of a /wiki/ subdirectory.
Edit: I also tried adding to the try_files like this: try_files $uri $uri/ @rewrite /wiki/Main_Page;
with the same 403 error result.