更改WordPress永久链接后出现404错误

12

我的网站是用 PHP 创建的 Wordpress 网站。

我已经将固定链接更改为帖子名称。在 ChromeFirefox 中正常工作,但在IE8中不行。主页显示正确,但当我点击其他页面的链接时,会显示404页面未找到错误。

我使用的是 Wordpress 版本3+。

.htaccess 文件如下:

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

WordPress是文件夹名称。同时,Apache的rewrite_module已启用。


你的WordPress主目录中是否有一个.htaccess文件? - rogMaHall
是的,代码如下:ErrorDocument 404 /index.php

开始 WordPress

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

结束 WordPress

- Sagardevd
目前正在本地工作。而“wordpress”是文件夹名称。问题仅在IE8中发生。 - Sagardevd
5个回答

28

首先,在您的/var/www/文件夹中放置一个.htaccess文件并使其可写。 第二步,假设您的WordPress博客在/var/www/blog文件夹中,则转到/etc/apache2/sites-available/并对默认文件进行以下更改

<Directory /var/www/>
    Options +ExecCGI 
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
</Directory>
<Directory /var/www/blog/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
</Directory>

现在重新启动apache以确保更改生效。希望这能有所帮助。


你救了我的早晨! - Cedric Simon
很好,我在其他地方找到的只是确保启用了mod_rewrite并确保.htaccess位于正确的文件夹中且具有正确的权限。这是第一篇包括将额外配置添加到sites-available目录中的帖子。谢谢! - Trido
非常感谢!我遇到了同样的问题,尝试了一下,结果完美解决了!!! - moderns
你救了我的一天 :D 非常感谢。 - Ferrmolina

3

0

只需进入WordPress / wp-admin,该页面仍将工作,并导航至设置->永久链接。当您打开该页面时,WordPress 将重新生成 .htaccess 文件,然后一切都将正常工作。

编辑(来自http://codex.wordpress.org/Using_Permalinks

如果上述方法不起作用:

分页导航无法正常工作

有时候转到第二页(及其后续)的文章列表可能不按预期工作。

当单击其中一个链接时,页面会加载所有周围的内容(标题、页脚、侧边栏),但是并没有文章页面,而是出现错误消息:“抱歉,没有符合此标准的文章。”

这是由 WordPress 生成的 .htaccess 文件中的技术故障引起的。 要解决此问题,请删除 .htaccess 文件的内容并重新创建它。

在控制面板中,转到管理->文件(有关编辑文件的更多信息)

单击链接以编辑您的 .htaccess 文件。

将文件的内容复制并粘贴到文本编辑器中的文本文件中。这是一种预防措施,以防您的.htaccess文件具有手动输入的重定向、拒绝或其他方便的htaccess技巧。

从您的.htaccess文件中删除所有内容,然后单击“更新文件”按钮。

在控制面板中,转到选项>永久链接。

单击“更新永久链接结构”按钮,以为您的永久链接新生成新的重写规则。

使用以前已中断的链接测试结果。

在文件中添加任何手动htaccess条目(在#BEGIN WordPress或#END WordPress行之前或之后放置手动htaccess条目。)

您还可以通过从服务器中删除.htaccess文件、创建一个新的空.htaccess文件、将其权限更改为666,然后在选项- >永久链接中单击“更新永久链接结构”按钮来执行类似的步骤。生成新的htaccess规则集。

如果仍未解决问题,请查看WordPress支持论坛,特别是http://wordpress.org/support/topic/permalink-nextpage-doesnt-work#post-283222


我怀疑仅仅访问那个页面不会有任何作用。即使您没有更改设置,也需要保存设置。 - yitwail
确实,它确实做了“某些事情”。我遇到过这个问题很多次。 - Marc Steven Plotz

0

我在本地也遇到了同样的问题,尝试了上面的所有方法。过了一会儿,我意识到应用程序的虚拟主机设置中未启用 .htaccess。

<Directory "/Applications/XAMPP/htdocs/wordpress">
    Options FollowSymLinks
    AllowOverride All

    Order allow,deny
    Allow from all
</Directory>

添加这些代码行对我帮助很大,解决了我的问题。

-2

在 Apache->Apache 模块中启用 rewrite_module


Apache重写已启用,问题出现在浏览器上而非Web服务器。 - omid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接