You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从WordPress网址中移除index.php?已尝试多方案仍遇404

解决WordPress Permalink移除index.php后404的问题

兄弟,我太懂这种卡壳的憋屈感了!既然你已经把官方文档和Stack Overflow的常规操作都试了个遍,那咱们来揪几个容易被忽略的细节,大概率能解决问题:

  • 检查.htaccess的权限、路径和内容
    你的WordPress目录是blog,所以.htaccess必须放在blog文件夹里,而且权限要设为644(确保Apache能读取)。里面的规则要对应你的目录,正确内容应该是:

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

    重点注意RewriteBase必须是/blog/,很多人这里写错成根路径,直接导致404。

  • 确保Apache虚拟主机允许.htaccess覆盖
    找到你网站的虚拟主机配置文件(通常在/etc/apache2/sites-available/目录下),找到对应<Directory>块,把AllowOverride改成All,比如:

    <Directory /var/www/html/blog/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    

    修改完一定要重启Apache:sudo systemctl restart apache2(Ubuntu/Debian)或者sudo service httpd restart(CentOS/RHEL)。

  • 核对WordPress后台的站点URL设置
    登录WP后台到「设置-常规」,确认「WordPress地址(URL)」和「站点地址(URL)」都是http://你的域名/blog(比如http://example.com/blog),绝对不要带index.php。如果后台因为404进不去,直接修改blog/wp-config.php,添加这两行:

    define('WP_HOME','http://你的域名/blog');
    define('WP_SITEURL','http://你的域名/blog');
    
  • 清空缓存再测试
    浏览器缓存可能会坑你,按Ctrl+Shift+R强制刷新页面;如果用了CDN或者WP缓存插件(比如WP Rocket),也得把缓存清干净。

  • 再确认mod rewrite真的生效
    在blog目录下建个test.php,内容写:

    <?php phpinfo(); ?>
    

    访问http://你的域名/blog/test.php,搜索mod_rewrite,确认它在「Loaded Modules」列表里。或者在.htaccess加个测试规则:RewriteRule ^test$ test.php [L],访问http://你的域名/blog/test,如果能打开test.php就说明rewrite没问题。

要是这些都试过还是不行,可以开启Apache的rewrite日志排查具体错误,但那对新手有点复杂,先把上面的步骤走一遍,应该能解决问题!

内容的提问来源于stack exchange,提问作者cnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:16:20