Nginxを使用してwikiを設定しようとしています。MediaWikiファイルがファイルに見つかりません:短いURLを使用している場合のexample.jpg
は、私はそれが正しく動作/index.php?title=File:image.jpg
を使用する場合/wiki/File:image.jpg
nginxのは404
を返します使用する場合。
server {
listen 80;
listen [::]:80 ipv6only=on;
root /usr/share/nginx/mediawiki;
index index.php index.html index.htm;
...
location /wiki/ {
index index.php;
rewrite ^/wiki/([^?]*)(?:\?(.*))? /index.php?title=$1&$2 last;
}
location ~* /wiki/images/.*.(html|htm|shtml|php)$ {
types { }
default_type text/plain;
}
location ~* /wikiimages/ {
try_files $uri /wiki/index.php;
}
location ~* \.(js|css|jpg|jpeg|png|gif|ico)$ {
try_files $uri /wiki/index.php;
expires max;
log_not_found off;
}
location ~*\.php?$ {
try_files $uri =404;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
}
location /wiki/.*\.php?$ {
try_files $uri =404;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}
私のnginxは、リビットの後に'& 'をつけたので、' .jpg& 'を持っています。この問題の原因は、書き換えを使用すると、新しいURIが再処理されるためです。あなたのケースでは、それは '.jpg'だったので... regexから削除すると動作しますが、gifはどうですか?彼らはまた除外すべきですか? –