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

时间:2011-03-03 15:07:13

标签: wordpress

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

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

任何建议都会有所帮助

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

23 个答案:

答案 0 :(得分:91)

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

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

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

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

答案 1 :(得分:47)

如果您使用default以外的永久链接,例如Day and nameMonth and nameNumericPost name或{{},则可以非常简单地解决此问题1}},你只需要

登录您的管理区域:Custom Structure应该是:Settings > Permalinks

选择http://yoursite.com/wp-admin/options-permalink.php永久链接设置,然后保存更改

然后,您可以将其再次返回到您之前的其他固定链接选项将其保留为Default,如您所愿

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

答案 2 :(得分:46)

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

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

<Directory "/var/www/html">

更改了行:

AllowOverride None

AllowOverride All

然后重启网络服务器。

答案 3 :(得分:24)

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

  • 更改为首选固定链接样式:Admin: Settings > Permalinks,然后单击“保存”。有时它解决了这个问题。如果没有:
  • 确认文件/path/to/wordpress/.htaccess已更改,现在包含行RewriteEngine On。如果它不包含该行,则是Wordpress权限问题。
  • 验证是否已加载'rewrite'模块:使用

    创建一个PHP文件
    <?php
      phpinfo()
    ?>
    

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

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

    这样的东西
    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
    
  • 进行这些更改后,请不要忘记重新启动Apache服务器。 sudo service apache2 restart

答案 4 :(得分:13)

如果所有这些都不起作用,你的.htaccess是正确的,永久链接技巧没有用,你可能没有启用你的apache2重写mod

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

 sudo a2enmod rewrite 

答案 5 :(得分:9)

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

  1. 转到管理设置

  2. 点击固定链接,然后在单选按钮中选择帖子名称。

  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. 复制代码并粘贴到.htaccess文件中。

答案 6 :(得分:6)

由于在apache httpd.conf文件中禁用了重写模式,导致此错误,只需取消注释并享受seo友好永久链接

答案 7 :(得分:3)

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

答案 8 :(得分:2)

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

首先,登录您的wp-admin并转到设置&gt;固定链接

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

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

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

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

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

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

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

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

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

  7. 刚出现同样的问题,它似乎立即解决了!祝你好运!

答案 9 :(得分:2)

大部分时间只需访问设置 - &gt;即可修复此问题。 WordPress管理员中的永久链接页面,然后单击保存(已指出其他几个答案)。访问此页面时,WordPress会重写.htaccess文件中的指令,该文件会神奇地修复问题。移动网站后经常会出现此问题(网站因为.htaccess被遗忘或设置需要更新而中断)。

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

如果您在共享主机上,那可能就是您所能做的一切。如果您仍有问题,可能需要与托管服务提供商的支持人员联系。否则,请确保在服务器上启用了.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文件。

答案 10 :(得分:2)

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

  

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

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

答案 11 :(得分:1)

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

答案 12 :(得分:1)

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

答案 13 :(得分:0)

2天后, 解决方案是将options +FollowSymLinks添加到我的.htaccess文件的顶部。

答案 14 :(得分:0)

在尝试进行永久链接或服务器配置更改之前,请检查您的.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

答案 15 :(得分:0)

适用于nginx用户

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

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

这将使用URI字符串和提供的参数将所有永久链接请求移交给index.php。请systemctl reload nginx查看更改,并加载非主页链接。

答案 16 :(得分:0)

转到您的 WordPress 仪表板,向下滚动到设置,选择固定链接,

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

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

然后保存更改

答案 17 :(得分:0)

我刚刚将所有帖子的月份和日期更改为设置&gt;永久链接。

现在所有帖子都已打开且工作正常。

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

这种方法对我有用: - )

答案 18 :(得分:0)

如果您的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

答案 19 :(得分:0)

案例1: - 如果发现此类问题,让我们考虑是否将网站从一个托管迁移到另一个托管。

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

答案 20 :(得分:0)

只需导航至信息中心内的设置 - &gt;永久链接,然后导航到最后一个保存更改按钮。\

答案 21 :(得分:0)

我遇到了同样的问题,所以我删除了Apache并重新制作,问题就解决了。

答案 22 :(得分:-1)

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

到目前为止,没有任何作品,有效的是帖子,新页面,/联系页面除旧页面之外。

基本上,不起作用的网页/网址是:

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

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

/breeding.php和/training.php

我重命名了两个文件,并且上面的页面都有效。