0

一段时间以来,我一直在尝试解决此问题,但尚未找到有效的答案。我一直在工作的内部网的 wordpress 网站上工作(识别信息已被删除)。我从我们的网络人员那里得到了正确的 dns 名称,并在 nginx 中创建了所有内容。到目前为止,我一直通过ip地址访问wp。

我的问题是双重的。第一个是我可以选择一个永久链接结构,但唯一可靠工作的是普通结构。如果选择了任何其他结构,wp-admin 将无限重定向到自身。

为了让事情更有趣,如果我选择普通结构,wp-admin 在注销时不会显示登录页面,也不会在登录时显示仪表板。相反,它会显示站点的主页。

我尝试过的事情:

  1. 将永久链接更改为计划:有效,但 wp-admin 不显示仪表板
  2. 删除 .htaccess 文件:这些在我的配置中不存在,因为我使用的是 nginx,我还通过文件结构做了一个 grep 以防万一并且没有 .htaccess 文件。
  3. 更新数据库中的 siteurl/home:现在可以通过 dns 中提供的主机名访问 wp

我冒昧地将我的 nginx 站点配置包括在内,以供您阅读。

任何帮助使这项工作都将不胜感激。

server {
       listen 80;
       listen [::]:80;

       server_name intranet.company.com;

       root /var/www/intranet/;

       access_log /var/log/nginx/intranet/access.log;
       error_log /var/log/nginx/intranet/error.log;

       location = /favicon.ico {
                log_not_found off;
                access_log off;
        }

        location = /robots.txt {
                 allow all;
                 log_not_found off;
                 access_log off;
        }

        index index.php;

        location ~ /\. {
                 deny all;
        }

        location ~* /(?:uploads|files)/.*\.php$ {
                 deny all;
        }

        location / {
                 try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                 include snippets/fastcgi-php.conf;
                 fastcgi_intercept_errors on;
                 fastcgi_pass unix:/run/php/php7.2-fpm.sock;
                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
                 expires max;
                 access_log off;
        }
}

编辑

经过进一步测试,wordpress 似乎没有正确显示子目录。wordpress 配置肯定有一些问题,看起来 nginx 工作正常。

编辑 2

经过更多测试后,通过 IP 地址访问该站点时,该站点运行良好。wp-admin 按预期正确重定向到登录页面,并在登录时正确重定向到仪表板。

编辑 3

经过进一步检查,该站点似乎正在将静态文件重定向到目录。当我通过 dns 名称或 ip 地址访问 wordpress 安装的根目录中有一个 readme.html 文件,wordpress 会将文件名重定向到目录。然后它再次给我主页,而不是错误或任何其他表明出现问题的迹象。我还启用了调试日志,这也无济于事。

4

2 回答 2

0

因此,在对这个问题进行一些挖掘和思考之后,WordPress 似乎希望成为默认的虚拟站点。我对这个理论进行了实验,结果证明是正确的。一旦我重新启用默认站点并将其指向 WordPress 目录,它就开始按预期工作。

这里要注意的是,虚拟站点文件必须使用“_”作为 server_name,并且必须在监听行中包含“default_server”。

于 2019-12-10T16:39:00.277 回答
0

希望这个链接有帮助:只有默认的永久链接工作 wordpress 其他人变成 404 错误

还要检查您的站点上是否启用了 mod_rewrite 规则。

确保您的文件夹和文件权限正确

于 2019-12-02T18:50:48.937 回答