阿里云搭建的wordpress网站首页看打开,内页打开是404?

服务器

在阿里云上搭建的 WordPress 网站,首页可以打开但内页(如文章页、分类页等)出现 404 错误,通常是因为 URL 重写规则(伪静态)未正确配置。WordPress 使用“美观链接”(Permalinks)时,需要服务器(如 Apache 或 Nginx)正确支持 URL 重写功能。

以下是常见原因及解决方法:


✅ 一、检查 WordPress 固定链接设置

  1. 登录 WordPress 后台(http://你的域名/wp-admin)。
  2. 进入 设置 → 固定链接(Permalinks)。
  3. 尝试选择 “朴素”(?p=123 格式),保存。
  4. 再切换回你喜欢的格式(如“文章名”),再次保存。

⚠️ 这个操作会刷新 .htaccess 文件(Apache)或触发 Nginx 重写规则更新。


✅ 二、根据服务器类型配置重写规则

情况1:使用 Apache 服务器

确保以下几点:

  1. 启用 mod_rewrite 模块

    sudo a2enmod rewrite
    sudo systemctl restart apache2
  2. 允许 .htaccess 覆盖

    打开你的网站虚拟主机配置文件(如 /etc/apache2/sites-available/000-default.conf),确保 <Directory /var/www/html> 中有:

    AllowOverride All

    而不是 AllowOverride None

  3. 检查根目录是否有 .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

    如果没有,请手动创建或通过 WordPress 后台“固定链接”页面尝试自动生成。


情况2:使用 Nginx 服务器(更常见于阿里云 ECS)

Nginx 不使用 .htaccess,必须在配置文件中手动添加重写规则。

  1. 编辑 Nginx 配置文件(通常位于 /etc/nginx/sites-available/default 或 /etc/nginx/conf.d/your-site.conf)。

  2. 在 server { ... } 块中,找到 location /,修改或添加如下内容:

    location / {
       try_files $uri $uri/ /index.php?$args;
    }
  3. 确保 PHP 处理正常:

    location ~ .php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass 127.0.0.1:9000;  # 或 unix socket
    }
  4. 保存后测试配置并重启 Nginx:

    sudo nginx -t
    sudo systemctl restart nginx

✅ 三、检查文件权限

确保 .htaccess(Apache)或 Nginx 配置文件可读,并且 WordPress 可写:

chmod 644 /var/www/html/.htaccess
chown -R www-data:www-data /var/www/html/

✅ 四、阿里云特殊配置(如使用云虚拟主机)

如果你使用的是 阿里云虚拟主机(非 ECS):

  • 登录 阿里云控制台 → 虚拟主机管理 → 高级环境设置 → 伪静态
  • 选择 WordPress 模板并启用。

阿里云虚拟主机不支持 .htaccess 自动写入,需通过控制台开启伪静态。


✅ 五、其他排查建议

  1. 清除浏览器缓存或用无痕模式测试
  2. 禁用所有插件,看是否某个插件导致冲突
  3. 更换默认主题(如 Twenty Twenty-Four)测试
  4. 检查是否开启了 CDN 或缓存插件(如 WP Super Cache、W3 Total Cache),尝试清除缓存

总结

问题原因 解决方法
伪静态未开启 设置固定链接并保存
Apache 未启用 rewrite 启用模块 + AllowOverride All
Nginx 未配置 try_files 添加 try_files $uri $uri/ /index.php?$args;
阿里云虚拟主机 控制台开启“伪静态”
权限或缓存问题 检查权限、清除缓存

如果你能提供你使用的是 ECS 还是虚拟主机,以及 Apache 还是 Nginx,我可以给出更具体的配置示例。

需要的话,请贴出你的服务器类型和当前固定链接设置。

未经允许不得转载:CDNK博客 » 阿里云搭建的wordpress网站首页看打开,内页打开是404?