You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache升级后配置301重定向:将URL中cat_one替换为cat

别被供应商忽悠了!这个需求完全可以通过Apache的mod_rewrite模块轻松实现301永久重定向,不管是用.htaccess还是虚拟主机(vhosts)配置文件都能搞定。下面给你详细的实现方案:

前提条件

首先确保你的Apache服务器已经启用了mod_rewrite模块:

  • 可以通过执行命令apache2ctl -M(Debian/Ubuntu)或httpd -M(CentOS/RHEL)查看,输出中如果有rewrite_module (shared)就说明已经启用。
  • 如果没启用,需要先开启(比如Debian/Ubuntu用a2enmod rewrite,CentOS/RHEL编辑httpd.conf去掉mod_rewrite.so前的注释)。

方案1:使用.htaccess文件配置

如果你的网站允许使用.htaccess(需要Apache配置中对应目录的AllowOverride设置为All),可以按以下步骤操作:

  1. 进入网站的根目录(或者products目录下,根据你的实际结构调整)
  2. 创建或编辑.htaccess文件,添加以下规则:
RewriteEngine On
# 将旧路径中的cat_one替换为cat,保留后续路径和所有查询参数
RewriteRule ^products/cat_one/(.*)$ /products/cat/$1 [R=301,L,QSA]
  1. 保存文件后,直接访问旧URL测试即可。

规则解释:

  • RewriteEngine On:开启Apache的URL重写引擎
  • ^products/cat_one/(.*)$:匹配以products/cat_one/开头的URL路径,(.*)会捕获cat_one/之后的所有内容(比如record/1656782)
  • /products/cat/$1:替换后的新路径,$1引用前面捕获的内容,实现路径替换
  • [R=301,L,QSA]:规则标记:
    • R=301:指定这是永久重定向,告诉浏览器和搜索引擎该URL已永久变更,有助于保留SEO权重
    • L:表示这是最后一条规则,匹配后不再执行后续重写规则
    • QSA:自动保留原URL的所有查询参数(比如?lang=eng&type=grey会完整传递到新URL)

方案2:在Apache虚拟主机(vhosts)中配置

如果你有权限编辑Apache的虚拟主机配置文件(比如httpd-vhosts.conf或站点专属的.conf文件),这种方式比.htaccess更高效(不需要每次请求都读取.htaccess文件):
在你的HTTPS虚拟主机块中添加重写规则:

<VirtualHost *:443>
    ServerName example.com
    # 保留你原有的配置(比如DocumentRoot、SSLCertificateFile等)
    
    RewriteEngine On
    RewriteRule ^/products/cat_one/(.*)$ /products/cat/$1 [R=301,L,QSA]
</VirtualHost>

注意这里的路径开头多了一个/,因为虚拟主机中的规则是基于服务器根路径的,而.htaccess是基于当前目录的。
添加后重启Apache服务生效。

测试验证

配置完成后,你可以通过以下方式验证:

  1. 在浏览器中输入旧URL,检查是否自动跳转到对应的新URL,且查询参数完整保留
  2. 使用curl命令测试(更准确):
curl -I "https://example.com/products/cat_one/record/1656782?lang=eng&type=grey"

返回结果中应该包含HTTP/1.1 301 Moved Permanently状态码,以及Location: https://example.com/products/cat/record/1656782?lang=eng&type=grey的响应头。

内容的提问来源于stack exchange,提问作者TheOrdinaryGeek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:31:21