我尝试使用 重定向一些 URL .htaccess
,但没有成功。问题是我必须重定向 URL 的两个不同部分。
这是我必须重定向的示例:
example.com/huawei-reparatie/huawei-mate-7-reparatie
必须重定向至:
example.com/reparatie/huawei/huawei-mate-7
那么必须要做的事情是:
- 拆分
huawei-reparatie
成reparatie/huawei
- 删除
-reparatie
每个 URL 末尾的
这些都是动态 URL,所以不只这一个。我必须为许多不同的品牌(例如huawei
)和许多不同的设备(例如huawei-mate-7
)重定向所有这些 URL
我希望有人能帮助我。
答案1
为了澄清您的要求:
/first-second/text-to-keep-removethis
应重定向到;
/second/first/text-to-keep
在哪里
first
,second
并且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(永久)重定向(如果这是意图)。