我正在將我的mediawiki網站轉換爲使用nginx作爲前端用於php的後端上apache的靜態文件的前端。到目前爲止,除了當我查看根目錄「example.com」時它嘗試提供目錄列表並給出403錯誤,因爲我已禁用並且沒有索引文件。將根地址重寫爲nginx中的子目錄
的阿帕奇重寫規則我在的地方,現在很簡單:
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文件與標題('Locat離子:')在裏面,但我寧願用一個重寫規則正確地做。
所有的例子,我在網上找到了運行nginx的鏈接到MediaWiki運行的wiki作爲wiki.example.com而非/維基/子目錄。
編輯:我也想加入到這樣的try_files:try_files $uri $uri/ @rewrite /wiki/Main_Page;
用相同的403錯誤的結果。
應該在哪裏我寫這篇文章的代碼? –
@Pankajkatiyar在你的服務器塊 –