宝塔面板Nginx设置任意路径301重定向

网极科技1年前代码笔记1641

接到一个客户的诉求,需要将指定路径进行301重定向,由于宝塔设置重定向只有域名(即根目录),无法对子目录或其他任意路径进行重定向,所以需要手写Nginx的重定向规则。

301重定向和伪静态有什么区别?

这是我们首先要明确的问题,伪静态是访问URL不变,但是内部请求到了另一个URL,经常用来隐藏真实地址,比如后台地址,api地址等等。而301则是当访问旧URL时,服务器会发送301状态码作为响应,告知客户端该URL已永久移动到另一个URL,并且客户端会自动跳转到新URL。301重定向通常用于将旧的URL结构指向新的URL结构,或者将一个URL重定向到另一个相关的URL。
301重定向和伪静态是两种不同的概念:

  1. 301重定向是指通过HTTP状态码301将一个URL重定向到另一个URL。这意味着当访问旧URL时,服务器会发送301状态码作为响应,告知客户端该URL已永久移动到另一个URL,并且客户端会自动跳转到新URL。301重定向通常用于将旧的URL结构指向新的URL结构,或者将一个URL重定向到另一个相关的URL。

  2. 伪静态是将动态生成的URL通过重写规则(例如在Nginx配置文件中的rewrite指令)重写为看起来像静态URL的形式。实际上,伪静态URL仍然是由动态脚本处理的,只是通过重写规则将URL进行了美化,更加友好、易读和搜索引擎友好。伪静态可以提高URL的可读性和搜索引擎优化,并且对于一些使用静态文件服务器的情况,也可以更好地适应。

总结来说,301重定向是通过修改HTTP响应代码来告知客户端URL的移动,而伪静态是通过修改URL的外部形式(不影响服务器内部处理逻辑)来获得更好的URL美观性和可读性。两者用途和实现方式都不同,适用于不同的场景。

301重定向和伪静态设置的位置有什么不同?

301重定向和伪静态设置的位置有所不同。下面是它们分别应该设置的位置:

  1. 301重定向的设置通常是在Web服务器的配置文件(如Nginx的server块或Apache的.htaccess文件)中进行。你可以在服务器配置文件中的特定位置或条件下设置重定向规则。这些规则告诉服务器在收到请求时,将特定的URL重定向到另一个URL。这样,无论访问的是旧的URL还是新的URL,服务器都会发送301状态码,告知客户端该URL已永久移动,并自动将其重定向到新的URL。

  2. 伪静态的设置也是在Web服务器的配置文件中进行,通常是通过重写规则来实现。对于Nginx来说,你可以在location块内设置重写规则,以将动态的URL重写为看起来像静态的URL。这样,当客户端请求伪静态URL时,服务器会根据重写规则将其重写为动态请求,然后动态处理该请求并返回结果。重写规则可以根据规则匹配的URL路径和参数进行定义,然后将其转化为实际的动态请求。

总之,301重定向和伪静态都是通过在服务器配置文件中设置不同的规则来实现的,用于优化URL的处理和使用。具体的设置位置会根据你所使用的Web服务器和配置文件来确定。

宝塔面板中设置301重定向的位置

在宝塔面板中打开网站设置,能看到伪静态和根目录301重定向的位置,如果要指定目录进行301重定向,需要查看配置文件:

上图中 就记载了重定向文件的目录,我们进入这个目录,创建一个后缀为.conf的文件,文件名随意,因为配置文件引用的是该目录下所有.conf的文件
然后进行代码书写,可先在宝塔面板中配置一个301的根目录域名跳转,查看他的配置文件写法,去书写即可。我们客户的需求是将帝国cms的 /e/tags/?tagname=关键词 301重定向到 /tag/关键词/ 代码如下:

if ($arg_tagname) {
                return 301 /tag/$arg_tagname/;
            }

相关文章

【精选】PHP将股票日K线数据转换为周K线数据

【精选】PHP将股票日K线数据转换为周K线数据

可以使用PHP来将股票日K线数据转换为周K线数据。具体实现方法如下:获取日K线数据,例如从数据库中查询出所有日期的股票数据,保存在一个数组中,每个元素包含如下信息: $day_data = [...

简单实用NSIS制作windows安装程序美化版

简单实用NSIS制作windows安装程序美化版

在使用electron将网站项目打包成桌面客户端后,制作exe安装包就是必须要做的了,通过使用QT、NSIS等制作工具,最后整理出来了一套美化版NSIS安装包制作流程。最终成品软件:链接:https:...

如何解决服务器每天固定时间点流量带宽异常?

如何解决服务器每天固定时间点流量带宽异常?

处理服务器流量高峰问题服务器在每天固定的时间点流量消耗很大,这可能是因为这个时间段是用户活跃度的高峰期,导致请求量猛增,让服务器承受不小的压力。但是,如果没有进行有效的流量管理和负载均衡,这种情况可能...

PHP7.1+ 7.2 7.4 json_encode 造成float数据精度异常情况

PHP7.1+ 7.2 7.4 json_encode 造成float数据精度异常情况

php7.1+版本进行json处理时,精度异常到很长的数值如下图本来原数据是没有这么大的精度的,小数点后面2-4位而已,而经过json_encode处理后就成这样的了。解决办法,给php文件开头加下如...

windows下composer简单使用

windows下composer简单使用

在windows下执行composer,可直接下载composer.phar文件,控制台运行即可此处下载composer.zip然后将该文件composer.phar放置到需要执行composer安装...

火车头采集分页多页数据

火车头采集分页多页数据

在使用火车头采集器时,遇到有分页多页的情况出现,可进行如下设置进行采集1 在第二步,采集内容规则中设置“分页获取规则”,即页码标签位置2 在标签编辑页面勾选  该标签在分页中匹配 ...