使用 URL 参数 ID 编号范围的 HTACCESS 重定向

DL1*_*984 6 regex apache .htaccess mod-rewrite redirect

我希望有人可以提供帮助,因为事实证明这很难弄清楚。

我正在尝试通过 HTACCESS 和 mod_rewrite 重定向许多具有特定范围(从 1 到 7603)内的 URL 参数 ID 值的页面。

这是我到目前为止所拥有的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} &?id=\b([1-9][0-9]{0,2}|[1-6][0-9]{3}|7[0-5][0-9]{2}|760[0-3])\b [NC]
RewriteRule ^example\.php$ http://www.website.com/? [R=301,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

如果有 ID URL 参数,它当前确实重定向页面,但它重定向任何 ID 号,而不仅仅是指定范围内的那些,例如,它会重定向 ID=10000,即使不应该。

有谁知道我做错了什么以及我该如何解决?

Ali*_*han 2

您可以使用这个正则表达式:\b((\d{1,3})|([1-6]\d{3})|(7[0-5]\d{2})|(760[0-3]))\b

它应该分为以下步骤:

  1. 0 <= ID <= 999\d{1,3}
  2. 1000 <= ID <= 6999[1-6]\d{3}
  3. 7000 <= ID <= 75997[0-5]\d{2}
  4. 7600 <= ID <= 7603760[0-3]

你可以在这里测试一下