我正在尝试在 nginx 的子目录下设置一个 mediawiki。
我不想使用类似的东西http://wiki.example.com
。我不想代理回我的服务器。
我想要使用http://www.example.com/wiki
或类似的东西。
我尝试重写 php,但效果不佳。以下是我尝试的:
location /wiki {
rewrite ^ /wiki/index.php$request_uri;
}
我目前正在使用 Mediawiki 1.31.0。
答案1
这是迄今为止我能得到的最完整的答案。它似乎无法识别 Vector 之类的样式,但目前其他一切似乎都可以正常工作。这是整个服务器块:
server {
listen 80;
listen [::]:80;
root /var/www/basedomain.org;
index index.php index.html index.htm index.nginx-debian.html;
server_name basedomain.org *.basedomain.org;
location / {
try_files $uri $uri/ =404;
}
location /wiki {
alias /var/www/mediawiki/code;
index index.php index.html;
if (-f $request_filename) {
break;
}
rewrite ^/(.*)$ /wiki/index.php?title=$1&$args;
}
location ~ /wiki/(.+)\.php(/|$) {
set $script $uri;
if ($uri ~ "/wiki/(.+\.php)(/|$)") {
set $script $1;
}
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME /var/www/mediawiki/code/$script;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}