regex - 使用 URL 参数 ID 编号范围进行 HTACCESS 重定向

标签 regex apache .htaccess mod-rewrite redirect

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

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

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

<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>

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

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

最佳答案

根据您显示的示例,您可以尝试以下操作吗?请确保在测试您的网址之前清除缓存。将检查查询字符串的条件,以确保 id= 之后的值远低于 7603,其余重定向部分仅按照 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]

关于regex - 使用 URL 参数 ID 编号范围进行 HTACCESS 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24161897/

相关文章:

java - 在 java 中的正则表达式上重复相同的模式?

c# - 正则表达式不匹配数字后跟某个字符

python - Python 中用于 PEG 解析器的 NodeVisitor 类

linux - 将 Apache 从默认路径重定向到 Ubuntu Server 中的指定目录

php - Apache 不会加载 Zend Guard Loader

php - 在 Apache/PHP 中,如何运行一个独立的进程,并在 linux 上重启 apache 后继续存在

regex - 正则表达式不包括特定的可选后缀

php - 简单的 htaccess 技巧

.htaccess - 如何为 WordPress MU 主域启用 HTTPS,但不为子域启用 HTTPS

.htaccess;浏览器缓存错误重定向