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

网极科技2年前代码笔记3173

接到一个客户的诉求,需要将指定路径进行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/;
            }

相关文章

全球所有国家和地区的ISO英文数字代码,国家名称首都、面积、人口数量、所属洲

全球所有国家和地区的ISO英文数字代码,国家名称首都、面积、人口数量、所属洲

数据不能保证100%准确,仅供您参考 ISO二字代码 ISO三字代码 ISO数字代码 国家/地区 首都/省会 面积/km² 人口 所属洲 AD AN...

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

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

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

明道云集成我司API接口范例

明道云集成我司API接口范例

有个客户购买了我司的智能快递地址解析接口,需要集成到明道云系统,所以写这个教程帮助大家。 第一步,在明道云创建如下表单其中第二个解析地址查询按钮为:左侧组件–高级–API查询 第二步,在集...

centos设置计划任务 定时运行php文件

centos设置计划任务 定时运行php文件

1.新建一个sh文件,上传到服务器例如文件名为 cron.sh文件内容为 php test.php 2.给这个文件设置可执行权限chmod +x cron.sh 3.增加计划任务A、安装cron...

支付风控方案:基于支付宝实名认证拦截黑产充值

支付风控方案:基于支付宝实名认证拦截黑产充值

核心目标 通过支付宝官方身份认证接口+实名校验双重机制,阻断虚假账号、盗号、洗钱等黑产行为,同时平衡用户体验与安全性。一、技术实现流程1. 支付宝身份认证接入接口文档调用支付宝官方认证服务:...

省市区四级地址编码下载_国家标准行政区划代码映射表【最后更新于2025年1月】

省市区四级地址编码下载_国家标准行政区划代码映射表【最后更新于2025年1月】

产品介绍:省市区四级地址编码_国家标准行政区划代码映射表最后更新于2025年1月产品概述本产品为 省市区四级地址编码与国家标准行政区划代码映射表,旨在为用户提供全面、准确、标准化的行政区划代...