我突然转到我的WordPress网站,所有页面都给了我一个404页面未找到的页面。我假设问题在于永久链接结构,我可以发誓我没有触及。固定链接设置为“月份和名称”。
我在网上研究过这个问题的类似实例,其中很多都与.htaccess
文件有关?我试着找,但我做不到。也许它以某种方式被删除了?应该在哪里找到它。
任何建议都会有所帮助
当然我可以看到隐藏的文件。
答案 0 :(得分:91)
.htaccess是一个隐藏文件,因此您必须将所有文件设置为在ftp中可见。
我建议你将永久链接结构恢复为默认值(?p = ID),这样就可以确保.htaccess是问题。
之后,您可以再次设置“月份和名称”结构,看看它是否有效。
PS:你升级到3.1了吗?在这种情况下,我见过一些有插件问题的人。
答案 1 :(得分:47)
如果您使用default
以外的永久链接,例如Day and name
,Month and name
,Numeric
,Post 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管理界面中,执行以下操作:
转到管理设置
点击固定链接,然后在单选按钮中选择帖子名称。
向下滚动,您会在此处看到.htaccess
代码。
<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
.htaccess
文件中。答案 6 :(得分:6)
由于在apache httpd.conf文件中禁用了重写模式,导致此错误,只需取消注释并享受seo友好永久链接
答案 7 :(得分:3)
答案 8 :(得分:2)
如果您拥有对帐户的FTP访问权限:
首先,登录您的wp-admin并转到设置&gt;固定链接
你应该在底部看到一些内容:
“如果您的.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.
刚出现同样的问题,它似乎立即解决了!祝你好运!
答案 9 :(得分:2)
大部分时间只需访问设置 - &gt;即可修复此问题。 WordPress管理员中的永久链接页面,然后单击保存(已指出其他几个答案)。访问此页面时,WordPress会重写.htaccess
文件中的指令,该文件会神奇地修复问题。移动网站后经常会出现此问题(网站因为.htaccess
被遗忘或设置需要更新而中断)。
如果WordPress没有正确的权限来编写.htaccess
文件,则会在页面顶部显示通知,并在保存设置时在底部显示更多说明。在这种情况下,您需要自己编辑.htaccess
文件,或者更好地修改该文件的权限。该文件位于WordPress安装的根目录下。 cd
进入目录sudo chmod 644 .htaccess
。您可能还想检查文件是否属于正确的组,并使用chown
进行更改。如果您不知道如何操作,请询问您的托管服务提供商。
如果您在共享主机上,那可能就是您所能做的一切。如果您仍有问题,可能需要与托管服务提供商的支持人员联系。否则,请确保在服务器上启用了.htaccess
文件,正如@georgeos已经建议的那样。请注意,并非始终使用httpd.conf
(Ubuntu 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 All
和AllowOverride 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
我重命名了两个文件,并且上面的页面都有效。