Я конвертирую свой сайт mediawiki, чтобы использовать nginx в качестве интерфейса для статических файлов с apache на сервере для php. Я получил все, что работает до сих пор, за исключением случаев, когда я просматриваю корневой каталог "example.com", он пытается обслуживать список каталогов и дает ошибку 403, так как у меня отключено и у меня нет индексного файла.
Правило перезаписи apache, которое у меня есть сейчас, просто:
RewriteRule ^$ /wiki/Main_Page [L]
Я попробовал что-то подобное с директивой location в nginx, но он не работает:
location = / {
rewrite "^$" /wiki/Main_Page;
}
Остальные директивы моего местоположения:
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;
}
Я могу просто поместить в него файл index.php с заголовком ('Location:'), но я предпочел бы просто сделать это правильно с помощью правила перезаписи.
Все примеры, которые я нашел в Интернете для работы mediawiki с nginx, запускают wiki как wiki.example.com вместо подкаталога /wiki/.
Изменить: я также попытался добавить к try_files, как это: try_files $uri $uri/ @rewrite /wiki/Main_Page;
с тем же результатом ошибки 403.