Konwertuję moją stronę mediawiki, aby używać nginx jako nakładki dla plików statycznych z apache na zapleczu dla php. Do tej pory wszystko działało, z wyjątkiem sytuacji, gdy przeglądam katalog główny "example.com", który próbuje wyświetlić listę katalogów i daje błąd 403, ponieważ mam to wyłączone i nie mam tam pliku indeksu.Przepisanie adresu root do podkatalogu w nginx
Apache reguła przepisywania mam w miejscu teraz jest po prostu:
RewriteRule ^$ /wiki/Main_Page [L]
Próbowałem coś podobnego z dyrektywy lokalizacji w nginx, ale to nie działa:
location =/{
rewrite "^$" /wiki/Main_Page;
}
Reszta Moje dyrektywy dotyczące lokalizacji to:
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;
}
Mogę po prostu umieścić plik index.php z nagłówkiem ("Locat ion: ') w tym, ale wolałbym zrobić to właściwie z regułą przepisywania.
Wszystkie przykłady, które znalazłem w Internecie do uruchamiania mediawiki z nginxem, uruchamiają wiki jako wiki.example.com zamiast podkatalogu/wiki /.
Edytuj: Próbowałem również dodać do try_files w ten sposób: try_files $uri $uri/ @rewrite /wiki/Main_Page;
z tym samym wynikiem błędu 403.
Gdzie powinienem napisać ten kod? –
@Pankajkatiyar w swoim bloku serwera –