首页 文章

WordPress给了我除主页以外的所有页面都找不到404页面

提问于
浏览
98

我突然转到我的WordPress网站,所有页面都给了我一个404页面找不到页面 . 我假设问题在于永久链接结构,我可以发誓我没有触及 . 固定链接设置为“月份和名称” .

我在网上研究过这个问题的类似实例,其中很多都与 .htaccess 文件有关?我试着找,但我做不到 . 也许它以某种方式被删除了?应该在哪里定位 .

任何建议都会有所帮助

当然,我可以看到隐藏的文件 .

22 回答

  • 0
    • 检查.htaccess上的目录是否正确

    • 检查字段"siteurl"和"home"是否正确

  • 43

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

    我建议你将永久链接结构恢复为默认值(?p = ID),这样你才能确保.htaccess是问题 .

    之后,您可以再次设置“月份和名称”结构,看看它是否有效 .

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

  • 2

    如果您使用 default 以外的永久链接(例如 Day and nameMonth and nameNumericPost nameCustom Structure ),则修复该问题非常简单,您只需要

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

    Choose Default permalink setting ,然后保存更改

    那么你可以 return it again to your other previous permalink choicekeep it as default as yo wish

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

  • 0

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

    就我而言,我在以下部分更改了文件/etc/httpd/conf/httpd.conf:

    <Directory "/var/www/html">
    

    换线是:

    AllowOverride None
    

    AllowOverride All
    

    并重新启动Web服务器 .

  • 0

    如果默认行为( example.com/?p=42 )正在运行,您应该:

    • 更改为首选固定链接样式: Admin: Settings > Permalinks ,然后单击“保存” . 有时它解决了这个问题 . 如果没有:

    • 确认文件 /path/to/wordpress/.htaccess 已更改,现在包含行 RewriteEngine On . 如果它没有Wordpress权限问题't include the line, it' .

    • 验证是否已加载'rewrite'模块:使用创建PHP文件

    <?php
      phpinfo()
    ?>
    

    在其中,在浏览器中打开它并搜索 mod_rewrite . 它应该在'Loaded Modules'部分 . 如果不是,请启用它 - 查看您的apache默认 index.html 文件以获取详细信息 - 在Ubuntu中,您可以使用帮助程序 a2enmod 执行此操作 .

    • 验证apache服务器是否正在查看 .htaccess 文件 . 打开 httpd.conf - 或者's Ubuntu'替代, /etc/apache2/apache2.conf . 在其中,你应该有类似的东西
    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
    
    • 进行这些更改后,不要忘记重新启动Apache服务器 . sudo service apache2 restart
  • 6

    只需按照以下步骤操作即可轻松解决问题,如果您只需登录管理仪表板即可

    Go to Settings » Permalinks, and simply click on Save Changes button .

    enter image description here

    这将更新永久链接设置并刷新重写规则 . 在大多数情况下,此解决方案修复了WordPress帖子404错误 . 但是,如果它不适合您,那么您可能需要手动更新.htaccess文件 .

    使用FTP登录您的服务器,并修改 .htaccess 文件,该文件位于/ wp-content /和/ wp-includes /所在文件夹所在的同一位置,只需将代码放在您的 .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
    

    希望这能解决问题 .

  • -1

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

    • 转到管理员设置

    • 单击固定链接并在单选按钮中选择发布名称 .

    • 向下滚动,你会在这里看到 .htaccess 代码 .

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule>
    
    • 复制代码并粘贴 .htaccess 文件 .
  • 22

    IF all this dont work, your .htaccess is correct, and permalinks trick didnt work, you may have not enabled your apache2 rewite mod .

    我跑了这个,问题解决了:

    sudo a2enmod rewrite
    
  • 0

    这个错误是由于在apache httpd.conf文件中禁用了重写mod,只是取消注释并享受seo友好永久链接

  • 2

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

    首先,登录您的wp-admin并转到设置>永久链接

    您应该在底部看到一些内容:

    “如果您的.htaccess文件是可写的,我们可以自动执行此操作,但并非如此,这些是您在.htaccess文件中应具有的mod_rewrite规则 . 单击该字段并按CTRL a选择全部 . ”

    如果是这样,请执行以下操作:

    • 进入FTP客户端的首选项并确保显示隐藏文件(因FTP客户端而异) - 如果不这样做,则不会能够找到你的htaccess文件

    • 转到wp-admin,wp-content,wp-includes目录所在的文件夹 . 检查.htaccess文件 . 如果存在,请跳至步骤4

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

    • 将.htaccess文件的CHMOD更改为666(您希望如何执行此操作的首选项)

    • 返回永久链接页面并编辑所需的链接结构 . 问题应该解决!

    • 确保在完成后将htaccess文件的chmod更改回644 .

    刚遇到同样的问题,它似乎立即解决了!祝好运!

  • 1

    大多数情况下,只需访问WordPress管理员中的 Settings -> Permalink 页面即可解决此问题,然后单击“保存”(已指出其他几个答案) . 访问此页面时,WordPress会重写 .htaccess 文件中的指令,该文件可以神奇地修复问题 . 移动网站后经常会发生此问题(网站因为 .htaccess 被遗忘或需要更新设置而中断) .

    如果WordPress没有正确的权限来写入 .htaccess 文件,则会在页面顶部显示通知,并在保存设置时在底部显示更多说明 . 在这种情况下,您需要自己编辑 .htaccess 文件,或者更好地修复该文件的权限 . 该文件位于WordPress安装的根目录下 . cd 进入目录 sudo chmod 644 .htaccess . 您可能还想检查文件是否属于正确的组,并使用 chown 进行更改 . 如果您不知道如何操作,请询问您的托管服务提供商 .

    如果您正在共享托管's probably all you can do. If you still have the issue you might want to talk to you hosting provider'的支持 . 否则,请确保在服务器上启用 .htaccess 文件,正如@georgeos已建议的那样 . 请注意,并非始终使用 httpd.confUbuntu indicates it is deprecated,但the official Apache docs still says it is often the main configuration file) . /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf 似乎是此文件最常见的地方 . 找到公用文件夹的块,通常为 <Directory /var/www/> ,并确保 AllowOverride 指令设置为 All . 如果设置为 None ,则服务器将忽略您的 .htaccess 文件 .

  • 9

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

    AH00670:选项FollowSymLinks和SymLinksIfOwnerMatch都关闭,因此RewriteRule指令也被禁止,因为它具有类似的绕过目录限制的能力:/ srv / www / htdocs / wp-intranet /

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

  • 2

    我安装了mod_rewrite来解决问题 . 以下链接提供了安装指南: - http://www.iasptk.com/enable-apache-mod_rewrite-ubuntu-14-04-lts/

  • 0

    我有同样的问题,所以我删除Apache并再次使它,问题解决了 .

  • 0

    您可能在webhost设置中禁止.htaccess . 在这种情况下,设置为默认永久链接将起作用 .

  • 9

    只需导航到仪表板中的 Settings->Permalink ,然后导航到最后一个 Save Changes 按钮 .

  • 3

    案例1: - 如果看到这种问题,让我们考虑是否将站点从一个托管迁移到另一个托管 .

    解决方案: - 只需转到旧服务器副本.htaccess文件代码,然后转到新服务器.htaccess文件中 . 99%它我会工作 .

  • 90

    如果您的WordPress安装在子文件夹(例如https://www.example.com/subfolder)中,请在WordPress中更改此行 .htaccess

    RewriteRule . /index.php [L]
    

    RewriteRule . /subfolder/index.php [L]
    

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

  • 0

    我刚刚通过设置>永久链接将所有帖子的固定链接更改为“月和日” .

    现在所有帖子都是公开的,工作正常 .

    我再次将所有帖子重命名为其实际永久链接 . 它再次正常工作 .

    这种方法对我有用:-)

  • 15

    For nginx users

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

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

    这将带有URI字符串和提供的参数的所有永久链接请求转发给index.php . 请 systemctl reload nginx 查看更改,您的非主页链接应加载 .

  • 47

    在尝试进行任何永久链接或服务器配置更改之前,请检查.htaccess文件 . 这主要是一个损坏或空白的.htaccess文件问题 . 将htaccess文件重置为default

    # 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
    
  • 0

    不久前我遇到过这个问题 . 我已经将我的固定链接重置为默认值或者只保存了它,更新了主题/核心到(4.7.4)/ plugins,停用所有插件,切换到默认主题,优化数据库,.htaccess已经默认,检查文件权限,mod_rewrite打开 .

    到目前为止没有任何作用,有效的是帖子,新页面,/联系页面除了旧页面 .

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

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

    终极,我在根文件夹中找到了这些文件:

    /breeding.php和/training.php

    I renamed both files and the pages above worked.

相关问题