小皮面板怎么设置网站301重定向

域名注册
域名注册 初级会员超兽战士 👑年卡会员
发布于 2026-10-08 20:00 ·1 浏览 ·0 回复

学完这篇,你能在小皮面板(phpStudy 面板)里给自己的网站配好 301 重定向,把旧域名、不带 www 的地址统一跳到新地址上。整个过程不用改一行 PHP 代码,改的是站点配置文件。

第一步:确认环境和面板版本

这一步要搞清楚你用的是什么环境,因为小皮面板分 Windows 版和 Linux 版,改配置的位置不一样。

打开小皮面板客户端,左上角或「关于」里能看到版本号,目前常见的是 Windows 版 8.x 和 Linux 版(phpStudy for Linux / 小皮面板 Linux 版)。本文以 Windows 版 phpStudy 8.1 + Apache 2.4.39 + PHP 7.4 为例,Nginx 用户看第五步。

在面板首页点「网站」菜单,找到你要做重定向的那个站点,记下它的域名和根目录路径,比如 D:\phpstudy_pro\WWW\example.com。

注意:301 是永久重定向,浏览器会缓存。调试阶段建议先用 302(临时重定向)验证,确认无误后再改成 301,否则浏览器记住旧规则会很难受。

第二步:找到站点的配置文件

这一步要打开对应站点的 vhost 配置文件。在「网站」列表里,站点右侧有一列操作按钮,点「管理」→「打开配置文件」,或用面板右上角的「设置」→「配置文件」→ 找到 vhosts 目录,文件通常叫 example.com_80.conf。

文件一般长这样:

<VirtualHost *:80>
    DocumentRoot "D:\phpstudy_pro\WWW\example.com"
    ServerName example.com
    ServerAlias www.example.com
    ...
</VirtualHost>

第三步:写 Apache 的 301 跳转规则

这一步把跳转代码写进 <VirtualHost> 标签内部,写完保存。

场景一:不带 www 跳到带 www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]

场景二:整站换域名(旧站 example.com 全跳新站 newsite.com)

RewriteEngine On
RewriteRule ^(.*)$ https://www.newsite.com/$1 [R=301,L]

场景三:只跳单个页面

Redirect 301 /old-page.html https://www.example.com/new-page.html

参数说明:R=301 是永久跳转,L 表示匹配后停止后续规则,[NC] 表示忽略大小写,$1 代表原路径。

注意:RewriteRule 的写法必须开启 mod_rewrite 模块。phpStudy 默认已开启;如果报 500 错误,打开 phpstudy_pro\Extensions\Apache2.4.39\conf\httpd.conf,确认 LoadModule rewrite_module modules/mod_rewrite.so 前面没有 #。

第四步:重启 Apache 生效

这一步让配置生效。回到小皮面板首页,在「软件管理」或首页的 Apache 那一行点「重启」,也可以点「停止」再点「启动」。重启后打开浏览器,用无痕窗口访问旧地址,按 F12 看 Network 面板,状态码显示 301 且 Location 指向新地址,就成功了。

注意:不要只在面板里点「保存」就以为完事,Apache 改 vhost 必须重启服务才读取新配置。

第五步:如果你用的是 Nginx

Nginx 环境改的是站点配置里的 server 块,加一行:

server {
    listen 80;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

改完同样在面板里重启 Nginx。Nginx 的 return 301 比 rewrite 效率更高,能不用 rewrite 就不用。

第六步:常见问题排查

访问后提示「重定向次数过多」:说明跳转形成了死循环,检查目标地址是不是又被另一条规则跳回来了,比如 www 跳非 www、非 www 又跳 www。

跳转不生效:清浏览器缓存或用无痕窗口;确认 ServerName 和 ServerAlias 里的域名和你访问的域名一致,否则请求根本进不到这个 vhost。

想带参数跳转:Apache 用 $1 或 %{QUERY_STRING},Nginx 用 $request_uri,否则 ?id=123 这类参数会丢。

小结

  • 301 重定向改的是站点的 vhost 配置文件,不是 PHP 代码
  • Apache 用 RewriteRule ... [R=301,L],Nginx 用 return 301
  • 改完必须重启对应的 Web 服务(Apache 或 Nginx)
  • 调试期先用 302,确认无误再换 301,避免浏览器缓存干扰
  • 出现「重定向次数过多」基本都是规则互相跳造成的死循环
版权声明:本文来自 GJ站长论坛《小皮面板怎么设置网站301重定向》
原文链接:https://www.gj0.com/thread-1167.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~