如何在CyberPanel中重写规则以移除www前缀?
问题解决步骤
1. 修复.htaccess文件不存在的错误
- 登录CyberPanel面板,进入对应网站的文件管理器,打开
public_html目录 - 点击「新建文件」,文件名输入
.htaccess(注意开头的英文点) - 右键该文件,设置权限为
644
如果用SSH命令行操作:
touch /home/simulaserp.com.br/public_html/.htaccess chmod 644 /home/simulaserp.com.br/public_html/.htaccess
2. 修正重写规则(按需选择)
场景A:强制去掉www前缀(访问www.simulaserp.com.br自动跳转到simulaserp.com.br)
将.htaccess内容替换为以下规则:
RewriteEngine On # 匹配带www的域名,重定向到不带www的版本 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,L]
场景B:允许不带www的域名直接访问(禁止自动添加www)
删除原有的错误跳转规则,保留基础配置即可:
RewriteEngine On # 可在此添加其他伪静态规则,不要保留强制跳转到www的规则
3. 原规则的错误说明
- URL格式错误:
http:www//是语法问题,正确格式应为https://www. - 逻辑与需求相反:原规则是强制把不带www的域名跳转到带www的,和你要避免www前缀的需求冲突
- 正则匹配错误:
!^www.[NC]里的点未转义,正确写法是!^www\.(点在正则中需转义才能匹配实际的点符号)
内容的提问来源于stack exchange,提问作者leonardo cardoso
相关产品推荐
相关产品推荐

