0

我想根据 url 中检索到的值重定向一些页面。

我有必要用 htaccess 来做。

例如

http://www.mydomain.com/products.php?id=1040

http://www.mydomain.com/products.php?id=1041

http://www.mydomain.com/products.php?id=1042

如果id值大于1039小于1501,apache必须重定向到另一个页面

http://www.mydomain.com/otherpage.html

欢迎一些想法。

先谢谢了。

4

3 回答 3

1

尝试:

RewriteCond %{QUERY_STRING} ^id=([0-9]+)
RewriteCond %1 >1039
RewriteCond %1 <1501
RewriteRule ^/?products\.php? /otherpage.html? [L,R=301] 

第一个条件将数字 ID 分组,使其可通过%1作为反向引用。接下来的两个条件检查此数字 ID 是否大于 1039 且小于 1501。如果所有 3 个条件都满足,则请求/products.php重定向到/otherpage.html。at the ?end 确保查询字符串不附加到 end

于 2013-01-23T21:03:30.170 回答
0

有了这种特定的要求,我认为在应用程序级别而不是在 Apache 中执行重定向是最合适的。只需比较值 fo$_GET['id']并根据需要重定向 via header()

要么,要么您必须编写一个相对复杂的正则表达式来搜索 a 内 1040 和 1500 之间的值,RewriteCond因为正RewriteRule则不会对查询字符串进行操作。

于 2013-01-23T20:33:45.450 回答
0

你应该添加这样的东西

AddDefaultCharset UTF-8
Options +MultiViews
RewriteEngine On
RewriteRule condition/ http://www.mydomain.com/otherpage.html [P]

悬停我不确定重定向参数值有多容易:|

于 2013-01-23T20:35:18.607 回答