根据 URL 中存在的 ID(较小/较大)在 .htaccess 中重定向

问题描述 投票:0回答:2

我正在努力处理一个重定向,一开始我觉得这个重定向很简单,但事实并非如此。我想根据输入 URL 中存在的数字 ID 在 .htaccess 文件中进行重定向。 前任。 https://example.com/bla-id200000.html

ID 可以有 6 或 7 位数字

我的第一次尝试是询问chatgpt,它给了我一些线索,但最终浪费了我大约2个小时的时间,因为它的解决方案不起作用。根据 chatgpt 的说法,问题是 RewriteCond 不支持像 < for capturing group matches.

这样的直接比较运算符

有人可以帮我解决这个问题吗?任何提示将不胜感激:)

我试过了

RewriteCond %{REQUEST_URI} ^/([^/]+)-id(\d+)\.html$
RewriteCond %2<200000
RewriteRule .* https://subdomain.example.com/item?id=%2 [L]

RewriteCond %{REQUEST_URI} ^/([^/]+)-id(\d+)\.html$
RewriteRule .* item?id=%2 [L,QSA]

结果是:内部服务器错误

regex .htaccess redirect mod-rewrite
2个回答
0
投票

如果您有 Apache 2.4+,您可以将

expr
与数字运算符一起使用,它们是:

  • -eq 等于
  • -ne 不等于
  • -lt 低于
  • -le 低于或等于
  • -gt 大于
  • -ge 大于或等于

所以你可以尝试这个而不是

RewriteCond %2<200000
:

RewriteCond expr "%2 -lt 200000"

还有一个整数比较

integercomp
但我没有找到它的使用示例,可能类似于
RewriteCond integercomp %2 -lt 200000


0
投票

我终于明白了!

RewriteCond   "%1" "<200000"

上面的效果很好。谢谢您的帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.