我正在努力与重定向,在一开始缝给我一样简单,但它不是。我想做一个重定向.htaccess文件的基础上存在于输入的URL的数字ID。例如https://example.com/bla-id200000.html
- 如果'id' > 200000重定向到https://example.com/item?id=300000
- 如果'id' < 200000重定向到https://subdomain.example.com/item?id=100000
ID可以有6位或7位数字
我的第一次尝试是问chatgpt,它给了我一些线索,但最终浪费了我大约2个小时的时间,因为它的解决方案不起作用。根据chatgpt的说法,问题是RewriteCond不支持像<这样的直接比较运算符来捕获组匹配。
谁能给予我帮个忙吗?任何提示将不胜感激:)
我试
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]
结果是:内部服务器错误
2条答案
按热度按时间i7uq4tfw1#
如果你有Apache 2.4+,你可以使用
expr
和数值运算符,它们是:所以你可以用这个代替
RewriteCond %2<200000
:还有一个整数比较
integercomp
,但我没有找到它的使用示例,可能类似于RewriteCond integercomp %2 -lt 200000
vwkv1x7d2#
我终于拿到了!
上面的工作很好。