私は、phpのバックエンドにあるApacheで静的ファイルのフロントエンドとしてnginxを使用するようにmediawikiサイトを変換しています。私はルートディレクトリ "example.com"を見るときを除いてこれまでのところすべての作業を行っていますが、それはディレクトリリストを提供しようとし、それを無効にしてインデックスファイルを持っていないので403エラーを出します。nginxのサブディレクトリにルートアドレスを書き直します
私は今の場所に持っているApacheのリライトルールは単純です:
RewriteRule ^$ /wiki/Main_Page [L]
私は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ファイルにheader( 'Locatイオン: ')が、私はむしろ書き換えルールで正しくそれを行うだろう。
nginxを使用してmediawikiを実行しているオンラインで見つかったすべての例は、/ wiki /サブディレクトリではなくwiki.example.comとしてwikiを実行します。
編集:try_filesに次のように追加しようとしました:try_files $uri $uri/ @rewrite /wiki/Main_Page;
と同じ403エラーの結果。
このコードはどこに書きますか? –
あなたのサーバブロックの@Pankajkatiyar –