WordPress 给了我一个404页面,除了主页,其他页面都找不到

突然,我去我的 WordPress 网站和所有的页面给我一个404页没有找到页面。我猜问题出在永久链接结构上,我发誓我没碰过。永久链接设置在“月份和名字”上

我在网上研究过类似的问题,很多都和 .htaccess文件有关?我试过找,但找不到。也许它被删除了?它应该在哪里。

任何建议都会有帮助

当然我还能看到隐藏的文件。

246451 次浏览

. htaccess 是一个隐藏文件,因此必须将所有文件设置为在 ftp 中可见。

我建议您将永久链接结构返回 default (? p = ID) ,以确保. htaccess 是问题所在。

在此之后,您可以再次简单地设置“ month and name”结构,并查看它是否有效。

PS: 你升级到3.1了吗? 我见过一些人在这种情况下有插件问题。

  • 检查.htaccess 上的目录是否正确
  • 检查字段“ siteurl”和“ home”是否正确

如果您的帐户有 FTP 访问权限:

首先,登录到你的 wp-admin,进入设置 > 永久链接

你应该看到底部写着:

”如果你。Htaccess 文件是可写的,我们可以自动做到这一点,但它不是这样的 mod _ rewrite 规则,你应该在你的。Htaccess 文件。在字段中单击并按 CTRL + a 选择所有。”

如果这是真的,请做以下事情:

  1. 进入你的 FTP 客户端的首选项,并确保隐藏文件显示(根据你的 FTP 客户端不同)-如果你不这样做,你将无法找到你的 htaccess 文件

  2. 转到 wp-admin、 wp-content、 wp-include 目录所在的文件夹。检查一下。Htaccess 文件。如果存在,则跳到步骤4

  3. 如果不存在,则在 FTP 程序中创建一个名为.htaccess 的新空白文件

  4. 将.htaccess 文件的 CHMOD 更改为666(关于如何执行此操作的首选项)

  5. 回到你的永久链接页面,编辑你想要的链接结构。问题应该得到解决!

  6. 确保在完成之后将 htaccess 文件的 chmod 修改回644。

只是遇到了同样的问题,而且似乎马上就解决了! 祝你好运!

这个错误是由于在 apache httpd.conf 文档中禁用重写 mod 导致的,只需取消注释并享受搜索引擎优化友好的永久链接

我有同样的问题,所以我删除了阿帕奇,使它再次和问题得到解决。

解决这个问题是非常简单的,如果你使用永久链接以外的 default,如 Day and nameMonth and nameNumericPost nameCustom Structure,你只需要

登录到您的管理区域: Settings > Permalinks应该是: http://yoursite.com/wp-admin/options-permalink.php

选择 Default permalink 设置 ,然后保存更改

然后你可以 再次返回到您以前的其他永久链接选择就像你希望的那样保持 default

请注意,当您将站点从一个域或位置移动到另一个域或位置时,可能会发生此问题。

在 WordPress 管理界面中执行以下操作:

  1. 进入管理设置

  2. 单击 permalink 并在单选按钮中选择 post name。

  3. 向下滚动,您将在这里看到 .htaccess代码,如下所示。

    <IfModule mod_rewrite.c>
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]
    </IfModule>
    
  4. Copy the code and paste in the .htaccess file.

基本上. htaccess 文件应该存在,httpd.conf 应该是正确的。

在我的例子中,我在节中修改了文件/etc/apache2/apache2.conf:

<Directory "/var/www/html">

换行是:

AllowOverride None

AllowOverride All

重新启动网络服务器

systemctl restart apache2

我安装了 mod _ rewrite 来修复这个问题。下面的链接提供了一个安装指南:- Http://www.iasptk.com/enable-apache-mod_rewrite-ubuntu-14-04-lts/

如果默认行为(example.com/?p=42)正常工作,则应该:

  • 更改为您首选的永久链接样式: Admin: Settings > Permalinks,然后单击 Save。有时它会修复问题。如果没有:
  • 验证文件 /path/to/wordpress/.htaccess已经更改,现在包含行 RewriteEngine On。如果没有包含这一行,就是 WordPress 权限问题。
  • 验证“ rewrite”模块是否已加载: 使用以下命令创建 PHP 文件

    <?php
    phpinfo()
    ?>
    

    在浏览器中打开它,搜索 mod_rewrite,它应该在“加载模块”部分。 如果不是,启用它-查看您的 apache 默认 index.html文件了解详细信息-在 Ubuntu 中,您可以使用 helper a2enmod进行此操作。

  • 验证 apache 服务器正在查看 .htaccess文件。打开 httpd.conf-或者它是 Ubuntu 的替代品,/etc/apache2/apache2.conf。在里面,你应该有

    <Directory /path/to/wordpress>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>
    
  • After making these changes, don't forget to restart your apache server. sudo service apache2 restart

您可能在网站主机设置中禁用.htaccess。 在这种情况下,设置默认永久链接可以工作。

不久前我还有这个问题。我已经重置了我的永久链接到默认或只是保存它,更新主题/核心(4.7.4)/插件,停用所有插件,切换到默认主题,优化数据库,。Htaccess 已经是默认的,已检查的文件权限,mod _ rewrite 已打开。

到目前为止,没有工作,什么工作是文章,新的页面,/联系页面,除了旧的页面。

基本上,不工作的页面/URL 是:

/breeding
/training
/training/*
/breeding/*

最后,我在根文件夹中找到了这些文件:

/breeding.php 和/training. php

我重新命名了这两个文件,上面的页面起作用了。

只需在仪表板中导航到 设定-> 永久连结,然后在最后按下 保存更改按钮

大多数情况下,只要访问 WordPress 管理中的 设定-> 永久连结页面并单击 Save (正如其他几个答案已经指出的那样) ,这个问题就可以得到解决。当访问这个页面时,WordPress 会重写 .htaccess文件中的指令,从而神奇地修复这个问题。这个问题通常发生在移动站点之后(站点中断是因为 .htaccess被落下或者设置需要更新)。

如果 WordPress 没有写入 .htaccess文件的权限,页面顶部会出现一个通知,在保存设置时,页面底部会出现进一步的说明。在这种情况下,您需要自己编辑 .htaccess文件,或者更好的方法是修复该文件的权限。该文件位于 WordPress 安装的根目录。进入目录和 sudo chmod 644 .htaccess。您可能还希望检查文件是否属于正确的组,并对 chown进行所需的更改。如果您不知道如何做,请询问您的托管服务提供商。

如果你使用的是共享主机,这可能是你唯一能做的。如果您仍然有这个问题,您可能希望与您的托管服务提供商的支持。否则,请确保在服务器上启用了 .htaccess文件的使用,正如@georgeos 已经建议的那样。请注意,并不总是使用 httpd.conf(Ubuntu 表示它已被弃用httpd.conf0)。/etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf似乎是这个文件最常见的位置。找到公用文件夹的块,通常是 <Directory /var/www/>,并确保将 AllowOverride指令设置为 All。如果将其设置为 None,则服务器将直接忽略 .htaccess文件。

案例1:-让我们思考如果迁移网站从一个主机到另一个主机,如果看到这种问题。

解决方案:-简单地转到旧的服务器副本。Htaccess 文件代码,然后在新的服务器过去。Htaccess 文件。99% 我会成功的。

如果你的 WordPress 安装在一个子文件夹中(比如 https://www.example.com/subfolder) ,请在 WordPress .htaccess中修改这一行

RewriteRule . /index.php [L]

RewriteRule . /subfolder/index.php [L]

通过这样做,你告诉服务器在 WordPress 文件夹中寻找 WordPress index.php(例如。而不是在公用文件夹中(例如。https://www.example.com).

如果这一切都不工作,你的。Htaccess 是正确的,永久链接技巧没有工作,你可能没有启用你的 apache2重写模块

我运行了这个程序,我的问题解决了:

 sudo a2enmod rewrite

我只是通过设置 permalink 将所有帖子的 permalink 更改为“ month and day”。

现在所有的职位是开放和工作良好。

再一次,我将所有的帖子重命名为它的实际永久链接。

这个方法对我很有效: -)

对于 nginx 用户

在您的站点(通常是 /etc/nginx/sites-available/example.com)的 conf 文件中使用以下内容

位置/{ Try _ files $uri $uri//index.php? q = $uri & $args; }

这将使用 URI 字符串和提供的参数将所有永久链接请求移交给 index.php。做一个 systemctl reload nginx看到的变化和您的非主页链接应加载。

我们遇到了同样的问题,并通过检查虚拟主机的 error.log 解决了这个问题。我们发现了以下信息:

AH00670: 选项关闭 SymLinks 和 SymLinksIfOwnerMatch, 因此,RewriteRule 指令也被禁止,因为它类似于 规避目录限制的能力: /srv/www/htdocs/wp-intranet/

解决方案是在我们的虚拟主机配置中设置 Options AllAllowOverride All

在尝试进行任何永久链接或服务器配置更改之前,请检查您。Htaccess 文件。这主要是一个腐败或空白。Htaccess 文件问题。将 htaccess 文件重置为 违约

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

经过漫长的两天, 解决方案是将 options +FollowSymLinks添加到我的 .htaccess文件的顶部。

转到你的 WordPress 仪表板,向下滚动到设置,选择 Permalink,

在出现的自定义设置中,转到自定义结构并将文本字段中的文本替换为

/index.php/%year%/%monthnum%/%day%/%postname%/

然后保存更改

想要分享我的两分钱。最近遇到了同样的问题安装 WordPress 5.9。2021年。

配置:

平台 MAC,软件 XAMPP,WordPress 5.9

以前的答案对我都没有帮助。

问题是由于在 XAMPP文件夹中的文件权限被设置为“只读”。

  1. 找到 XAMPP文件夹(通常在 Applications 文件夹中)。
  2. 右键单击 XAMPP文件夹。
  3. Get info.
  4. 右下角的解锁按钮→按指示操作。
  5. Sharing and permissionsEveryoneRead & Write
  6. 左下角三点按钮→ Apply to enclosed items

这种情况也可能是由于数据库版本与服务器上安装的 WP 文件不同步造成的。这里列出的其他东西对我来说都不管用; 我用手动 WP 更新解决了这个问题。