我想根据网址中检索到的值重定向某些网页。
我有必要用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
欢迎一些想法。
先谢谢。
答案 0 :(得分: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
。最后的?
确保查询字符串不会附加到结尾。
答案 1 :(得分:0)
有了这种特定要求,我认为在应用程序级别而不是在Apache中执行重定向是最合适的。只需比较值$_GET['id']
并通过header()
重定向。
或者您必须编写一个相对复杂的正则表达式来搜索RewriteCond
中1040到1500之间的值,因为常规RewriteRule
不会对查询字符串进行操作。
答案 2 :(得分:0)
你应该添加这样的东西
AddDefaultCharset UTF-8
Options +MultiViews
RewriteEngine On
RewriteRule condition/ http://www.mydomain.com/otherpage.html [P]
悬停我不确定重定向参数值是多么容易:|