3

mediawikiをインストールしています。外部ディレクトリ(webalizer web stats)のエイリアスを作成しようとする場合を除いて、すべてが正しいです。Nginxがリクエストを/usage/*PHP/Mediawikiに渡すことがわかります。私はそれを望んでいません。私は文字通り/usage/の下にあるすべてのものが私のエイリアスを指していることを望んでいます。Mediawikiのコードと機能から完全に分離されています。

# in no way related to Mediawiki. I just want to serve this as static HTML.
location /usage {
    alias /var/www/webalizer/wiki.longnow.org/;
}

# This answers to anything, which may be my problem
location / {
    try_files $uri $uri/ @rewrite;
    index index.php;
}

# A special rewrite to play nicely with Mediawiki
location @rewrite {
    rewrite ^/(.*)$ /index.php?title=$1&$args;
}

# PHP, nom nom nom
location ~ \.php$ {
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_pass unix:/tmp/php-fastcgi.socket;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

残りの前に/usagelocationディレクティブをリストすると、システムが短絡することを期待していましたが、Djangoに甘やかされてしまいました;)

4

1 に答える 1

3

Nginx がそれ以上のlocationディレクティブを処理しないようにするには、プレフィックスを^~. 内の 404 応答にフォールバックする
必要があると思います。try_fileslocation

location ^~ /usage {
    alias /var/www/webalizer/wiki.longnow.org/;
    try_files $uri $uri/ =404;    
}

参照については、 http://wiki.nginx.org/HttpCoreModule#locationを参照してください。

于 2013-01-23T18:13:35.910 に答える