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

Regex HTACCESS使用URL参数ID号范围重定向,regex,apache,.htaccess,mod-rewrite,redirect,Regex,Apache,.htaccess,Mod Rewrite,Redirect,我希望有人能帮忙,因为这很难弄清楚 我试图通过HTACCESS重定向,并且mod_重写在特定范围内(从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

我希望有人能帮忙,因为这很难弄清楚

我试图通过HTACCESS重定向,并且mod_重写在特定范围内(从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>

重新启动发动机
重写cond%{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]
重写规则^example\.php$http://www.website.com/? [R=301,L]
如果存在ID URL参数,它当前确实重定向页面,但它重定向任何ID号,而不仅仅是指定范围内的ID号,例如,它将重定向ID=10000,即使它不应该重定向


有人知道我做错了什么以及我如何纠正它吗?

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

应将其拆分为以下步骤:


  • 0对于您展示的样本,您可以尝试以下内容吗。请确保在测试URL之前清除缓存。将检查查询字符串的条件,以确保id=后的值在7603以下。此处,rest重定向部分仅符合OP显示的示例

    RewriteEngine ON
    RewriteCond %{QUERY_STRING} id=[0-6]?[0-9]?[0-9]?[0-9]?(?![0-9]+) [NC,OR]
    RewriteCond %{QUERY_STRING} id=7?[0-5]?[0-9]?[0-9]?(?![0-9]+) [NC,OR]
    RewriteCond %{QUERY_STRING} id=760[0-3]?(?![0-9]+) [NC]
    RewriteRule ^example\.php/?$ http://www.website.com/? [R=301,L]