当我使用/wiki/File:image.jpg时,Nginx返回404.
当我使用/index.PHP?title=File:image.jpg时它可以正常工作.
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;
}
}
解决方法:
将error_log级别更改为debug add rewrite log.就像是:
error_log /var/log/Nginx/error.log debug;
rewrite_log on;
有关测试,请查看此处:https://gist.github.com/jmervine/8943627 – 有一个示例配置,允许您自动化测试.使用完整日志,您可以解决问题.
我有这样的事情:
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script regex: "^/wiki/([^?]*)(?:\?(.*))?"
2016/04/21 13:02:10 [notice] 7566#7566: *1 "^/wiki/([^?]*)(?:\?(.*))?" matches "/wiki/File:test.jpg", client: 127.0.0.1, server: , request: "GET /wiki/File:test.jpg HTTP/1.1", host: "localhost"
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script copy: "/index.PHP"
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script args
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script copy: "title="
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script capture: "File:test.jpg"
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script copy: "&"
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script capture: ""
2016/04/21 13:02:10 [debug] 7566#7566: *1 http script regex end
2016/04/21 13:02:10 [notice] 7566#7566: *1 rewritten data: "/index.PHP", args: "title=File:test.jpg&", client: 127.0.0.1, server: _, request: "GET /wiki/File:test.jpg HTTP/1.1", host: "localhost"
看起来你的正则表达式可以更好……我会在今天晚些时候尝试找到更好的东西.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。