【问题标题】:404 error after changing permalinks wordpress更改永久链接 wordpress 后出现 404 错误
【发布时间】:2013-06-20 06:17:27
【问题描述】:

我的网站是使用PHP 创建的Wordpress-site。

我已将永久链接的默认设置更改为 postname。它在Chrome 和Firefox 中运行良好,但在IE8 中却不行。首页显示正确,但是当我点击另一个页面的链接时,它显示 404 page not found 错误。

我使用的是 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 文件吗?
  • 是的代码在 ErrorDocument 404 /index.php # BEGIN WordPress RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} ! -f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule 。 /wordpress/index.php [L] # END WordPress
  • 目前在本地工作。 'wordpress' 是文件夹名称。问题只发生在 IE8 上

标签: php wordpress


【解决方案1】:

首先将.htaccess 文件放入您的/var/www/ 文件夹并使其可写。 其次,假设您的 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 以确保更改已生效。希望对您有所帮助。

【讨论】:

  • 你拯救了我的早晨!
  • 很好,我能在别处找到的只是确保启用了 mod_rewrite 并确保 .htaccess 位于具有正确权限的正确文件夹中。这是第一篇将附加配置添加到站点可用目录的帖子。谢谢!
  • 非常感谢!我遇到了同样的问题,我试了一下,效果很好!!!
  • 你拯救了我的一天:D 非常感谢。
【解决方案2】:

在尝试了所有这些答案和 codex.wordpress.org 上的说明后,我需要在 Apache 上启用 mod_rewrite: https://stackoverflow.com/a/5758551/728287

【讨论】:

    【解决方案3】:

    只需进入 wordpress /wp-admin,它仍然可以工作,然后导航到 settings->permalinks。当您转到该页面时,wordpress 将重建您的 .htaccess 文件,一切都会再次正常运行。

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

    如果上述方法不起作用:

    分页导航不起作用

    有时导航到帖子的第二页(和后续页)无法按预期工作。

    单击其中一个链接的结果是页面加载了所有环境(页眉、页脚、侧边栏),但不是一页帖子,而是一条错误消息:“抱歉,没有帖子符合该条件。”

    这是由于 WordPress 生成的 .htaccess 文件中存在故障。 要修复它,请删除 .htaccess 文件的内容并重新创建它。

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

    单击指向您的 .htaccess 文件的链接以编辑其内容

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

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

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

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

    使用之前断开的链接测试结果。

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

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

    如果仍然不起作用,请查看 WordPress 支持论坛,特别是 http://wordpress.org/support/topic/permalink-nextpage-doesnt-work#post-283222

    【讨论】:

    • 我怀疑只是去那个页面有什么用。即使您没有更改设置,您也需要保存设置。
    • 确实,它确实做了“某事”。这个问题我遇到过很多次了。
    【解决方案4】:

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

    <Directory "/Applications/XAMPP/htdocs/wordpress">
        Options FollowSymLinks
        AllowOverride All
    
        Order allow,deny
        Allow from all
    </Directory>
    

    添加这些行对我有很大帮助并解决了我的问题。

    【讨论】:

      【解决方案5】:

      在 Apache 中启用 rewrite_module-> Apache 模块

      【讨论】:

      • apache 重写已启用,浏览器中的问题不在 Web 服务器上。
      猜你喜欢
      • 2019-06-19
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      相关资源
      最近更新 更多