我目前遇到的问题是我用完了解决方案:
快速恢复: 该项目是用Django编写的,我正确配置了我的自定义404,并且我有一些特定的网址被粘贴到nginx 404渲染而不是我的django模板。
示例:mydomaine.org/en/%20
我的django 404是一个模板,这意味着它动态链接到CMS中的页面。我没有自定义的404.html(或者说,用{%myheader%}等来写它)
所以,这是我的第一次尝试:
rewrite ^/en/\s.*$ mydomain.org/en/404 permanent;
但这会返回302
代码,并且不会考虑这种语言。
所以我尝试了别的东西:
error_page 404 /404.html;
(但我当然没有适当的模板)
location ~ /(?:en|fr|de|es|tr|ja)/\s.* {
return 404 mydomain.org/$1/404;
}
不起作用。
location ~ /(?:en|fr|de|es|tr|ja)/\s.* {
error_page 404 mydomain.org/$1/404;
}
不起作用。
location ~ /(?:en|fr|de|es|tr|ja)/\s.* {
return 404;
}
不是我想要的行为:(
显然我只能重写或显示nginx 404?不,我无法相信,谷歌使用自己的google.com/%20模板。
有没有人有想法?我完全迷失了。