在子目录 Nginx 1.14 中设置 Mediawiki

在子目录 Nginx 1.14 中设置 Mediawiki

我正在尝试在 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;
    }

相关内容