【问题标题】:Django and wordpress on nginx 404 errornginx 404 错误上的 Django 和 wordpress
【发布时间】:2017-02-09 17:14:28
【问题描述】:

我有一个在 example.com 上运行的 django,我需要在我的服务器上添加一个 Wordpress,将是 example.com/blog,可能不起作用(404 错误):

listen      80;
server_name www.example.com;    

location ^~ /blog/ {
        root    /www/blog;
        index   index.html index.htm index.php;
        try_files  $uri =404;

        location ~ \.php {
                root /www/blog;
                fastcgi_split_path_info ^(.*\.php)(.*)$;
                include fastcgi_params;

                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
                fastcgi_pass 127.0.0.1:9000;
        }

}

location / {
    uwsgi_pass  unix:/tmp/myapp.sock;
    include     /www/webapp/system/uwsgi_params; # the uwsgi_params file you installed
    uwsgi_read_timeout 300;
}

【问题讨论】:

    标签: django wordpress nginx


    【解决方案1】:

    我也遇到过这个问题。在这里,您可以检查我的位置配置。

    location /blog {
        root /var/www/html; 
    
        try_files $uri $uri/ /blog/index.php?$args;
        index index.php; 
    
        location ~ [^/]\.php(/|$) { 
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO       $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php; 
        } 
    
    }
    

    适合您的配置:

    location /blog {
         root    /www/blog; 
    
        try_files $uri $uri/ index.php?$args;
        index index.php; 
    
        location ~ [^/]\.php(/|$) { 
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO       $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php; 
        } 
    
    }
    

    【讨论】:

    • wordpress 文件夹是 /www/blog/index.php 但 nginx 正在“/usr/share/nginx/htmlindex.php”中搜索
    • @user2925795 我认为你应该让 / 在 /index.php 中?但我不知道你为什么会得到 404。
    • 给出 404 因为他在“/usr/share/nginx/htmlindex.php”中搜索 wordpress ...他应该在哪里查看 /www/blog/ 我如何改变这个?
    • @user2925795 将 / 添加到 index.php,如下所示:try_files $uri $uri/ /index.php?$args;
    【解决方案2】:

    @Levi 配置给我一些启示,我需要修改,因为我收到 404 错误或没有指定输入文件。

        location /blog {
             alias    /www/blog;
    
            try_files $uri $uri/ index.php?$args;
            index index.php;
    
            location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    
                include fastcgi_params;
                fastcgi_param  SCRIPT_FILENAME  /www/blog$fastcgi_script_name;
                fastcgi_param SCRIPT_FILENAME $request_filename;
    
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 2017-09-24
      • 1970-01-01
      • 2022-10-04
      • 2021-01-20
      • 2017-04-06
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      相关资源
      最近更新 更多