Htaccess 重定向文件夹并删除 URL 末尾

Htaccess 重定向文件夹并删除 URL 末尾

我尝试使用 重定向一些 URL .htaccess,但没有成功。问题是我必须重定向 URL 的两个不同部分。

这是我必须重定向的示例:

example.com/huawei-reparatie/huawei-mate-7-reparatie

必须重定向至:

example.com/reparatie/huawei/huawei-mate-7

那么必须要做的事情是:

  • 拆分huawei-reparatiereparatie/huawei
  • 删除-reparatie每个 URL 末尾的

这些都是动态 URL,所以不只这一个。我必须为许多不同的品牌(例如huawei)和许多不同的设备(例如huawei-mate-7)重定向所有这些 URL

我希望有人能帮助我。

答案1

为了澄清您的要求:

/first-second/text-to-keep-removethis

应重定向到;

/second/first/text-to-keep

在哪里

  • firstsecond并且removethis仅包含小写 az 字母。
  • first并由second一个连字符分隔。
  • removethis以单个连字符 (也被删除) 为前缀,并且始终出现在 URL 路径的末尾。
  • text-to-keep是任意一系列 az 和连字符。

.htaccess使用 mod_rewrite在根文件顶部尝试执行以下操作:

RewriteEngine On

RewriteRule ^([a-z]+)-([a-z]+)/([a-z-]+?)-[a-z]+$ /$2/$1/$3 [R=302,L]

RewriteRule 图案(第一个参数)是一个正则表达式,仅与请求的 URL 路径匹配,减去斜杠前缀。

$n代换字符串是对相应捕获组(带括号的子模式)的反向引用RewriteRule 图案

初始请求中存在的任何查询字符串都将原封不动地传递。如果要删除任何查询字符串,则添加标志QSD(查询字符串丢弃)。

请注意,这是一个临时 (302) 重定向。只有在确认一切正常后,才可更改为 301(永久)重定向(如果这是意图)。

相关内容