在url中使用特殊字符的Nginx返回404错误

时间:2013-06-07 08:36:18

标签: php wordpress nginx http-status-code-404 special-characters

我使用nginx和php-fpm来托管我的wordpress网站,我有一个很大的问题:

当我使用媒体插件写一个带有一些法国spécial字符的图片名称时,nginx会给我一个404.

http://example.com/wp-content/uploads/2013/05/Collier - 大象BOIS-OS-银色-300x300.jpg - >返回404

http://example.com/wp-content/uploads/2013/05/Collier-%C3%A9l%C3%A9phant-bois-os-argent-350x350.jpg - >返回404

该文件托管于/ wp-content / uploads / 2013/05 /目录并命名为Collier-éléphant-bois-os-argent-300x300.jpg

你能帮我解决一下吗?

nginx conf:

 server {

charset UTF-8;

## Your website name goes here.
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;

## Your only path reference.
root /var/www/example.com/www/htdocs/;
index index.php index.html;

server_name_in_redirect off;
port_in_redirect off;

location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico)$ {
access_log        off;
expires           30d;
}

# rewrite rules
location / {
if (!-e $request_filename) {
rewrite  ^/(.*)$  /index.php?q=$1  last;
}
}

location ~ \.php$ {
fastcgi_pass phpfcgi;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Cordialy,

1 个答案:

答案 0 :(得分:0)

您的服务器可能配置错误的区域设置,无法将非ASCII字符正确转换为文件名。

您需要确保文件系统使用utf8作为文件名,并且上传的文件也使用正确编码的文件名。