2011-03-03 93 views
69

突然之间,我去我的WordPress网站,所有的页面给了我一个404页面未找到页面。我假设问题在于永久链接结构,我可以发誓我没有碰到。永久链接设置是“月份和名称”。WordPress给我404页面没有找到所有页面除了主页

我在网上研究过类似的这个问题的实例,很多它与.htaccess文件有关?我试图找到,但我不能。也许它被删除了吗?它应该放在哪里。

任何建议将有帮助

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

+0

建议你问这对http://wordpress.stackexchange.com/为好。 – 2011-03-03 15:20:30

回答

68

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

我建议你将你的永久链接结构返回到默认值(?p = ID),以确保.htaccess是问题所在。

之后,你可以简单地设置“月份和名称”结构,看看它是否工作。

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

+1

是的,我已经显示隐藏的文件。我已经从默认转换为perma,并且默认工作。另外,WordPress的更新本身或什么?我注意到,当我登录时,我的网站上有一个新的管理任务栏,这是我以前没有的。我不知道它是如何到达那里的。 – Adam 2011-03-03 15:32:34

+0

有人误更新到3.1,所以它与插件冲突 – Adam 2011-03-05 19:23:19

+1

此解决方案不适用于我的情况。在我的本地主机上。 – 2013-12-28 07:00:43

2
  • 检查上的.htaccess的目录是正确的
  • 检查领域“SITEURL”和“家”是正确的
+1

对我来说,家是问题所在。我修复它,一切恢复工作。 ObrithankyouJoséCarlos。 – 2014-09-04 10:37:52

2

如果你有FTP访问您的帐户:

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

您应该在底部看到如下内容:

“如果您的.htaccess文件是可写的,我们可以自动执行此操作,但并不是这些是您的.htaccess文件应具有的mod_rewrite规则。点击字段,然后按Ctrl + A选择所有“

如果这是真的请执行下列操作:

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

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

  3. 如果它不存在,你叫的.htaccess

  4. 更改CHMOD为.htaccess文件到FTP 666程序(您的喜好你想如何做到这一点)

  5. 创建一个新的空白文件

    回到你的固定链接页面并编辑你想要的链接结构。问题应该解决!

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

刚刚有同样的问题,它似乎立即修复!祝你好运!

+0

“mod_rewrite”这是问题,我忘了启用它!谢谢:) – Chemaclass 2016-07-20 11:56:00

6

这个错误导致由于Apache的httpd.conf文件中重写国防部的残疾人,只是取消它,享受搜索引擎友好的永久链接

0

我有同样的问题,所以我再次删除了Apache,使之与问题解决了。

31

修复这个问题很简单,如果你使用比其他固定链接的如Day and namedefaultMonth and nameNumericPost nameCustom Structure,你只需要

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

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

然后你就可以再次回到它以前的其他固定链接选择保持它作为default的哟希望

注意,当你从一个域或位置到另一个移动你的网站上的这个问题可能发生。

+1

这有点帮助我,我有一些数据库错误,然后我所有的网页是404。切换永久链接选项到另一个选项(如普通),然后回到默认选项固定我的所有链接! – PaulBGD 2017-04-15 03:28:47

+0

很高兴听到:) – 2017-04-16 11:41:58

+1

完美答案!!! +1 :) – SagarPPanchal 2017-06-27 19:16:30

10

在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文件中。
+1

我在哪里可以找到这个?永久链接中没有这样的东西。 – 2014-04-17 06:13:25

+0

@Boris_yo据我所知,只有当你的'htaccess'文件不是'可写入的时候,规则才会显示出来。如果它是wordpress的话,它就会自己写出来... – 2015-09-16 03:43:37

+1

这个答案太棒了!除非在Linux中使用WP,否则不会知道它。非常感谢 – 2016-05-12 16:45:23

17

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

在我的情况,我在部分更改的文件/etc/httpd/conf/httpd.conf中:

<Directory "/var/www/html"> 

行已变更为:

AllowOverride None 

AllowOverride All 

然后重新启动Web服务器。

+0

,这对我有所帮助。在我的情况下,AllowOverride设置丢失。 – rag 2017-05-29 06:40:01

7

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

  • 更改为您喜欢的永久链接风格:Admin: Settings > Paramalinks,然后点击保存。有时它修复了这个问题。如果没有:
  • 验证文件/path/to/wordpress/.htaccess已更改,现在包含行RewriteEngine On。如果不是,那是Wordpress权限问题。
  • 验证“重写”模块加载:创建一个PHP文件,

    <?php 
        phpinfo() 
    ?> 
    

    ,在浏览器中打开它,然后搜索mod_rewrite。它应该在'Loaded Modules'部分。 如果不是,启用它 - 看看你的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

0

您可能会在网络主机设置中禁止.htaccess。 设置为默认永久链接将在这种情况下工作。

0

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

到目前为止没有什么作品,除了旧版页面之外,其他作品是帖子,新页面,/联系页面。

基本上,网页/网址没有工作是:

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

最终,我发现在根文件夹这些文件:

/breeding.php和/training.php

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

0

,只需转到设置 - >永久在你的仪表板,然后在最后保存更改按钮\

2

这其中大部分问题由简单地参观设置固定的时间 - >永久链接在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文件。

0

案例1: - 让我们想想如果将网站从一个托管迁移到另一个托管,如果看到此类问题。

解决方案: - 只需转到旧的服务器复制.htaccess文件代码,然后通过新的服务器.htaccess文件。 99%,我会工作。

6

可以很容易地解决这个问题只需按照以下 一些步骤,如果访问登录您的管理仪表板,然后简单地

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

enter image description here

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

登录到服务器使用FTP,并修改的.htaccess文件它位于在文件夹一样/可湿性粉剂内容/和/ WP-包括/所在, 只是简单地把代码娄同一位置在的.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

我在问这是怎么发生的,但是这解决了我的问题......谢谢 – Kurohige 2017-12-05 13:51:51

+0

这通常发生在你的.htaccess文件被删除或者重写规则出错的时候@Kurohige – 2017-12-06 05:57:08

0

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

我跑了这一点,我的问题解决了:

sudo a2enmod rewrite