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 在除主页外的所有页面上都找不到的主要内容,如果未能解决你的问题,请参考以下文章
在外部 Tomcat 服务器上运行的 Springboot 在除 index.html 之外的所有内容上都会出现错误 404