Wordpress 404 在除主页外的所有页面上都找不到

Posted

技术标签:

【中文标题】Wordpress 404 在除主页外的所有页面上都找不到【英文标题】:Wordpress 404 no found on all pages except the homepage 【发布时间】:2021-03-02 22:54:40 【问题描述】:

除了我的 wordpress 主页,我在所有页面上都找不到 404。

它并没有在预生产服务器上犯这个错误,而是在生产中。我使用复制器的插件将网站从 preprod 迁移到 prod。

生产服务器是我自己安装的vps ovh。它使用letsencrypt for https。它使用 ufw 防火墙,并且允许使用 openSSH 和 WWW Full。我的 apache 服务器没有检测到 sudo systemctl status apache2 的错误。

我一直在关注它的一些主题,比如更改永久链接设置,当我检查“默认”并保存时,我在其他页面上没有收到错误 404,它可以工作。我注意到在这种情况下,我的 .htaccess 文件的内容被删除了。当我重置我的默认永久链接设置时,我再次收到错误,我无法再访问我的页面(主页除外)。

在wordpress的常规设置中,wordpress的网址是https://www.abysolutions.com,网站的网址是https://www.abysolutions.com。 wp_options表中siteurl和home的值为https://www.abysolutions.com。

在我的域 abysolutions.com 区域 dns 中的 ovh 上有以下条目:A 146.59.234.157。但是,www.abysolutions.com 没有 A 条目。

这里有一些配置文件:

/etc/www/apache2/sites-available/abysolutions.conf:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName abysolutions.com
    ServerAlias www.abysolutions.com
    DocumentRoot /var/www/abysolutions

    <Directory /var/www/abysolutions>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog $APACHE_LOG_DIR/abysolutions-error.log
    CustomLog $APACHE_LOG_DIR/abysolutions-access.log combined
RewriteEngine on
RewriteCond %SERVER_NAME =abysolutions.com [OR]
RewriteCond %SERVER_NAME =www.abysolutions.com
RewriteRule ^ https://%SERVER_NAME%REQUEST_URI [END,NE,R=permanent]
</VirtualHost>

此文件通过 sudo a2ensite abysolutions.conf 启用。 我禁用了默认文件 sudo a2dissite 000-default.conf。

我在 /var/www/abysolutions 上的 .htaccess :(当我的永久设置启用时)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>

我做了 sudo chown -R www-data:www-data /var/www/abysolutions 和 sudo chmod -R 755 。

我用 sudo systemctl reload apache2 重新启动了服务器,并用 sudo a2enmod rewrite 激活了重写模块。

我通过以下链接安装了 wordpress 所需的所有 php 扩展:https://wordpress.org/support/topic/which-php-extensions-are-needed-to-run-a-fully-operational-wordpress-site/

但是还是不行……

这不是我第一次安装 vps 并在其上放置 wordpress,而且我总是执行相同的步骤。然后由于某种原因它卡住了。我在以前的安装中看到的唯一显着区别是,当我使用 Duplicator 迁移站点时,它提供给我的是https://www.example.com,而不是我以前的安装中的https://example.com。我不明白为什么我的网址会出现 www。

编辑:

在网站的运行状况中,我发现了 2 个严重错误:

检测到活动的 PHP 会话: PHP 会话是由 session_start() 函数调用创建的。这会干扰 REST API 和环回请求。在发出任何 HTTP 请求之前,应通过 session_write_close() 关闭会话。

您的网站无法完成关闭请求: 循环请求用于启动预定事件,并由主题和扩展编辑器用于检查代码的稳定性。

您网站上的环回请求失败,这意味着依赖这些请求的功能当前无法正常工作。 错误:cURL 错误 28:操作在 10001 毫秒后超时,接收到 0 个字节(http_request_failed)

在推荐的改进中:

REST API 遇到意外结果: REST API 是 WordPress 或其他应用程序与服务器通信的一种方式。一个示例是编辑器屏幕,用于显示和保存您的出版物。

对 REST API 的调用返回以下意外结果:(404) 404 Not Found Not Found

在此服务器上找不到请求的 URL。

Apache/2.4.38 (Debian) 服务器位于 www.abysolutions.com 端口 443

后台更新可能无法正常工作: 无法确认 wp_version_check() 过滤器是否可用。

编辑 2:

因此,通过将我的 .htaccess 与我的预生产服务器进行比较,我注意到 SimpleSSL 插件添加的一些规则丢失了。我还注意到在我的 /etc/apache2/sites-available/abysolutions-le-ssl.conf 文件中缺少规则。

我认为这是最后一个解决方案纠正了我的错误。再见!

【问题讨论】:

你把这个排序了吗? 【参考方案1】:

访问您的网站:

https://domain.tld/wp-admin/options-permalink.php

点击保存。

如果不起作用,请将 URL 设置更改为普通,单击保存。然后,如果它有效,请根据需要更改设置。

【讨论】:

以上是关于Wordpress 404 在除主页外的所有页面上都找不到的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress为主页以外的所有页面提供404错误

React 静态网站将除主页外的每个页面重定向到 404

wordpress ssl出现404错误

将旧页面重定向到主页/索引

只有默认永久链接工作wordpress其他成为404错误

在外部 Tomcat 服务器上运行的 Springboot 在除 index.html 之外的所有内容上都会出现错误 404