BT 面板

导航

宝塔面板手册

Nginx 301重定向规则

示例1:

将 app.xxxx.com/index 301到到  www.xxxx.com

#REWRITE-START
        rewrite ^/index$ https://www.xxxx.com permanent;
#REWRITE-END

.htaccess实现301重定向跳转的八种方法

301重定向跳转功能在建站过程中非常重要,从网站建设到目录优化,避免不了对网站目录进行更改,在这种情况下用户的收藏夹里面和搜索引擎里面可能保存的还是老的地址,在打开这些链接时会无法显示页面出现404的错误,造成很差的用户体验并失去了很多流量,今天笔者就给大家分享一下实现301重定向的七种方法。

从搜索引擎优化的角度来看,目前301重定向是网站目录更改后重新定向最为可行的一种办法。在你更改地址使用了301重定向后,搜索引擎只会对新地址进行索引,同时会把旧地址下原来收录的链接转移到新地址下,而上述的这些操作并不会影响到网站在搜索引擎的排名。

下面开始示例

1、重定向domain.com到www.domain.com

这种重定向非常常见,最终目的是实现域名的唯一性,也是seo必须要做的。实现方法是在.htaccess文件中加入以下规则:

代码如下:

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

注:使用这种301重定向方式后,当你打开类似domain.com的网址后会自动定向到www.domain.com。

2、重定向www.domain.com 到 domain.com

这种操作刚好和上面的域名显示是相反的,规则如下:

代码如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

注:使用此301重定向方式,当你打开类似www.domain.com的网址后会自动定向到domain.com。

3、重定向ddomain.com 到 newdomain.com

这种操作经常用于更换域名时用到,很多站长因为种种原因可能要为站点更换域名,此时多采用以下规则来实现重新定向:

代码如下:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

注:当用户打开老的域名后,会自动重定向到新的域名下的站点,此时域名显示格式为不带www.的格式。

4、重定向Olddomain.com 到 www.newdomain.com

这种操作是基于第三种方式的改良,只是显示网址显示为带www.的那种。

代码如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

注:当用户打开老的域名后,会自动重定向到新的域名下的站点,并且网址显示格式为带www.的格式。

5、重定向domain.com/File/File.Php 到 otherdomain.com/otherfile/other.php

这种操作针对于更改一个域名的同时,网站目录路径也发生变化的情况下使用,规则如下:

代码如下:

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

注:当用户访问老的域名路径时,会重新定向到新的域名新的路径下。

6、将A页面301跳转到B页面

Redirect 301 /a.html http://www.itbulu.com/b.html

7、IIS服务器下实现301重定向

具体方法如下:打开internet信息服务管理器,在欲重定向的网页或目录上按右键,选中“重定向到URL”, 在对话框中输入目标页面的地址,切记要选中“资源的永久重定向”最后点击“应用”即可。

注:再次提醒你,一定要选中“资源的永久重定向”。

8、Apache服务器实现301重定向

在Apache服务器实现301重定向的方法园子在以前的文章中提到过,只需要在.htaccess文件中加入以下规则:

代码如下:

Redirect /旧目录/旧文档名 新文档的地址

也可能是:

代码如下:

Redirect /olddirectory http://www.newsite.com/newdirectory

注:一定要注意书写格式,第一种是同一域名下将一个文档定向到新的目录地址,第二种是把老目录定义到新域名的新目录下。

使用企业微信接收宝塔消息通知的方法

通过本教程可设置使用企业微信来接收宝塔面版的一些消息通知,第一时间知晓服务器信息。

企业微信创建一个群

1、在企业微信列表中右键点击群名,再点击添加群机器人,如下图所示:

image

2、起个群机器人名称

image

3、点击添加机器人后,复制地址,如下图所示:

image

4、打开宝塔面版消息通道设置,钉钉里,填写钉钉URL即可,就是上面的复制地址。

没错,就是填写在钉钉URL中。

image

5、保存后,企业微信就会收到一个消息了。这就成功了。

实现一个域名网站不同路径使用不同PHP版本

现在很多的程序渐渐开始兼容支持php7了,但是有些网站还是不能使用php7以上的版本好了,下面针对子目录的网站进行php版本指定,我的网站根目录下有个tuku文件夹,这个是图片库程序,但是不支持php7以上的版本
那么伪静态中写入一下规则既可解决这个令人头疼的问题

location /tuku/ {
  include enable-php-56.conf;
}

当访问我的(http://url/tuku)图库的时候使用的是php5.6的版本
我网站根目录下还有个demo的文件夹用来存放测试脚本的,但是只支持到php5.2,那么就在伪静态中了写入一下规则

location /tuku/ {
  include enable-php-56.conf;
}
location /demo/ {
  include enable-php-52.conf;
}

还有一种情况,针对某种文件使用指定的php版本

location ~ .*\.(js|jpg|jpeg|gif|png|ico|gz|svg|svgz|mp4|ogg|ogv|webm|pdf|mp3|zip|apk|dat)$
    include enable-php-72.conf; 
}
location ~ .*\.(js1.php|url1.php|orq.php|test1.php|tz.php)$
    include enable-php-72.conf; 
}

宝塔面版SSL证书计划任务自动续签未执行的问题解决办法

宝塔面版网站申请了Let's Encrypt证书,计划任务中也有自动续签证书的任务,

image

但是证书到期后并没有自动续签,查看任务日志显示没有找到30天内到期SSL证书!

image

 

有不少用户都遇到此问题,我管理多台服务器,也只有其中一台服务器出现这问题,宝塔官方也没有明确的解决办法。

总结一下可能有如下几点原因:

1、站点使用了301或者cdn。

2、换用DNS验证,使用DNS接口,不要用手动解析,这样自动续签成功率更高。

image

修改PHP表单上传最大值

使用宝塔面版,如何设置PHP的表单上传最大值、POST最大值、提交表单数量等参数呢

image

登录宝塔面版,找到 软件商店-运行环境,如下图所示:

image

 

找到你要设置的PHP版本,如PHP-5.6,点击右边的【设置】,如下图所示:

image

在【配置修改】里修改即可,如下图所示:

image

最后别忘记保存哦!

宝塔面版Linux忘记登录密码的解决办法

宝塔面版非常好用,忘记密码了怎么办

进入ssh 输入以下命令重置密码(把命令最后面的   “testpasswd”  替换成你要改的新密码)
注:若是debian/ubuntu用户,请使用有root权限的账户去执行这条命令

cd /www/server/panel && python tools.py panel testpasswd

紫框即你要修改的密码
红框即面板账户

如果提示多次登录失败,暂时禁止登录 请输入以下命令 清除登录限制

rm -f /www/server/panel/data/*.login

新装面板用户获取默认账号密码命令:bt default

6.x及以后版本可输入

 

命令获取工具菜单来重置账户密码

php 开启GD扩展和MYSQL扩展

找到php.ini配置文件如图:将前面的分号去掉,保存,重启Apache服务器即可

FTP连接不上的解决方法

宝塔面版FTP无法连接,或连接后无法列出目录,可参考以下方法解决。

1、注意内网IP和外网IP

2、检查ftp服务是否启动 (面板首页即可看到)

3、检查防火墙20端口 ftp 21端口及被动端口39000 - 40000是否放行 (如是腾讯云/阿里云等还需检查安全组)
4、是否主动/被动模式都不能连接
5、新建一个用户看是否能连接
6、修改ftp配置文件 将ForcePassiveIP前面的#去掉 将192.168.0.1替换成你服务器的外网IP

7.若还不行 更换ftp客户端为flashFXP 改成图中的设置连接

如果还是不行,又是阿里云主机,在宝塔后台放行6379与11211端口就可以连接了

image.png

 

服务器磁盘有空间但无法写入的问题分析与解决办法(Inode使用率100%)

最近管理的一台Linux服务器,安装的宝塔面版,放了10多个CMS网站,发现全都打不开,根据提示是缓存目录无法写入,FTP也无法上传文件,初步判断是磁盘满了,,结果登录宝塔面版发现磁盘有足够的空间,SSH登录,df -h也有足够空间。

{xunruicms_img_title}

这就奇怪了,维护10多台服务器,几年经验,从来没遇到过这种情况。最近才换的华为云服务器出现这问题,所以怀疑是不是华为云服务器问题。提交工单,分析得知是因为过多的文件占用了大量的inode号,

通过SSH  df -i 发现 inode100%了。第一次认识到inode,受教了。

进一步分析找到文件太多的目录

for i in /data/*; do echo $i; find $i |wc -l; done

其中data是数据盘挂载目录

{xunruicms_img_title}

输入查询存放网站的目录:

for i in /data/wwwroot/*; do echo $i; find $i |wc -l; done

{xunruicms_img_title}

发现一个网站目录的inode数量最多,高达600多万,接着查询这个站点目录

{xunruicms_img_title}

原来是这个网站下的缓存目录文件数高达600多万个。通过命令清理删除后,就正常了。

这也是网站没配置好导致会有这么多缓存文件

远程连接数据库的方法

宝塔面版默认不支持远程连接本服务器数据库,通过以下设置便可连接成功。

防火墙放行3306端口(mysql默认端口)注:若服务器有安全组,记得也要放行3306端口
image
将数据库权限选择为所有人即可远程连接数据库

image

网站子目录绑定域名开启SSL证书的方法

宝塔面版bt非常好用,可以一键申请开启免费SSL域名证书,自动续签证书,真心好用。

但如果网站子目录绑定了域名的话,就无法开启SSL功能了。

image

这一点很不方便,不知道为啥宝塔官方一直没有升级支持此功能。

经过我研究,可以通过如下两种方式解决此需求

方法一:为子目录域名单独创建网站

比如,创建 m.16css.com 域名网站,网站目录则选择主站点的一个子目录

image

这样,我们就可以给这个二级域名申请SSL证书了。

方法二:修改网站配置文件

1、先给网站子目录绑定好域名,并且上传配置好域名证书,这里我没有使用宝塔自带的域名证书未做测试,我是上传的其它平台申请的好的证书。

2、修改网站配置文件

修改前请一定先备份里面的默认配置,以免出错无法恢复

<VirtualHost *:443>ServerAdmin webmasterexample
DocumentRoot “/www/wwwroot/二级域名/m/” //这里修改为你实际的子目录路径
ServerName SSL.二级域名 //这里SSL.后面修改为您二级网站的域名
ServerAlias 二级域名 //这里同上修改为您二级网站的域名
errorDocument 404 /404.html
ErrorLog “/www/wwwlogs/二级域名-error_log” //这里的域名相应的改过来
CustomLog “/www/wwwlogs/二级域名-access_log” combined //这里的域名相应的改过来
#SSL
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/二级域名/*****_public.crt //此处为重点,请把路径修改为上面证书上传的实际路径
SSLCertificateKeyFile /etc/letsencrypt/live/二级域名/*****_.key //此处为重点,请把路径修改为上面证书上传的实际路径
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
#PHP<FilesMatch .php$>SetHandler “proxy:unix:/tmp/php-cgi-70.sock|fcgi://localhost”</FilesMatch>#DENY FILES<Files ~ (.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md)$>Order allow,deny
Deny from all</Files>#PATH<Directory “/www/wwwroot/二级域名/m”> //这里修改为你实际的子目录路径
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php index.html index.htm default.php default.html default.htm</Directory></VirtualHost>

建议尽量使用第一种方法。

 

Mysql进程守护自动重启的Shell脚本

这是一个可以自动监控宝塔面版Mysql数据库是否启动的Shell脚本。

BT宝塔面版添加计划任务,选择Shell脚本

设置执行周期,比如10分钟一次。

填写脚本内容即可。

image

脚本内容:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ]
then
echo "At time:$(date) :MySQL is stop .">> /var/log/mysql_messages
/etc/init.d/mysqld start
else
exit
fi

任务管理器使用帮助

一、【进程】
描述:
追踪每个进程的CPU/内存/磁盘使用情况,点击进程名称可查看该进程更详细的信息

排序:
默认按CPU使用率降序,用户可点击每列头部进行排序

名词解释:



结束进程树:


打开的文件列表:
被当前进程已打开的所有文件

二、【启动项】
描述:
列出所有随系统启动的项目,包括init服务,用户自定义启动脚本

编辑:
通过在线编辑器,可查看或修改所有启动脚本,方便用户快速查找并排除恶意脚本

三、【服务】
运行级别:
每个服务有对应的运行级别设置,若在对应的运行级别设为开启,则表示系统将在对应运行级别启动该服务,下面列出每个运行级别代表的状态


删除服务:
面板先尝试使用stop命令停止服务,然后删除服务
注意:暂不支持直接删除Systemctl托管的服务

设置运行级别状态:
可以设置每个服务在指定运行级别下是否启动,Systemctl托管的服务则只支持设置系统当前运行级别的状态。
警告: 请不要随意修改系统服务的运行级别状态,也不要轻易将第三方服务指定Level-0、Level-6运行级别,这可能导致您的系统无法正常启动。


四、【网络】
描述:
快速查看当前服务器网络状态

状态名称解释:




五、【用户】
名词解释:      


登陆脚本:
使用该用户登陆系统时,运行的脚本


删除用户:      
程序会尝试删除用户,若检测到有进程在使用该用户,则先结束该进程再删除。
注意:通过这里删除用户,程序会不死不休的结束所有使用该用户的进程,直到成功删除用户
警告:任意删除用户会造成依赖该用户的软件异常,请谨慎操作


六、【计划任务】
描述:
解析crond服务中的所有计划任务,用户可查看任务周期、内容,或删除指定任务


七、【会话】
描述:
列出当前通过SSH成功登陆系统的会话

强行断开:
直接强制中断指定会话
警告:强制中断会话,也会中断该会话中正在执行的操作,请谨慎操作。

DDNS

发现商城上架了一款DDNS对比一下应该不属于作者原创,贴上DDNS地址https://github.com/NewFuture/DDNS

下载源码版传到服务器然后通过脚本执行run.py宝塔后台定时任务测试失败,配置自动执行命令
终端输入 crontab -e
按键盘i键开始输入内容,输入之后按ESC键再按:再输入wq退出保存






编辑如下配置,即每10分自动执行 run.py命令,即自动运行python脚本.
最后输入service crond restart即可开始自动定时执行命令

【宝塔邮局管理器】使用教程

1.安装宝塔邮局插件前,需要先安装redis服务,并设置redis密码。

安装完Redis服务后设置密码,设置密码时不要使用&%这类特殊符号
会导致负载状态显示异常,可使用英文+数字组合密码


PS:邮局的反垃圾模块 rspamd服务需要使用redis服务

2.安装邮局插件,安装4.5最新版本。


2.1进入邮局,然后会初始化,点击确定等待初始化完成。如果提示主机名不正常,点击修复
使用域名方式作为主机名,如xxx.com。然后点击提交



3.添加邮箱域名


3.1 邮箱域名做好A记录,然后再做一个二级域名为mail或者其他二级域名


3.2将解析好的域名添加到邮局域名内即可


3.3 解析MX、SPF、DKIM和DMARC记录
 

3.4 设置完解析后验证域名解析,有时候如果危险已设置,可能解析未生效。


MX记录:邮件交换记录,是域名在DNS服务器上的一个记录,告诉那台计算机负责为系统处理邮件。MX记录存在于域名的 DNS文件中,用于将某个域名的电子邮件指向到对应的邮件服务器处理。
SPF记录:可以避免伪造地址的垃圾邮件,避免有其他人伪造我的域名来投递。提高发送外域邮箱的成功率
DKIM记录:提供邮件签名验证的公钥信息
DMARC记录:识别并拦截欺诈邮件和钓鱼邮件,保障用户个人信息安全



4.邮箱用户创建
4.1 新增邮局用户,密码第一位必须是大写字母+小写字母+数字组成。邮箱地址不能为大写字母
 

4.2 批量添加邮局用户
 

PS:如账户密码忘记,点击用户编辑重新输入新密码保存即可。

5.邮局SSL申请设置 
5.1选择手动解析,如果有用到cloudflare托管的域名,可以使用API方式自动解析DNS记录
 

做好解析后点击验证,验证成功后会下发证书并自动部署。



5.2 其他证书部署,证书所属域名必须是你邮箱域名的主域名。将证书key以及pem文件内容填写报错即可
 

6.使用邮局账户测试发件
6.1 发件可多个用户发送,使用英文符号,隔开即可

6.2查看QQ、网易邮箱和Gmail接收正常
  



PS:如您服务器运营商限制了25端口是无法正常使用宝塔邮局插件的,请确保服务器运营商开放25端口
以上是邮局部署安装使用教程,感谢您对宝塔面板的支持。此贴不处理问题,有问题重新发帖咨询。