Htaccess重定向取决于变量的值

时间:2011-03-17 14:44:22

标签: apache .htaccess redirect

我遇到这么简单的问题。

在我们的网站上,我们有一个分页器,它与GET变量“p”一起使用(p = 1 - 是第一页,p = 2 - 秒等等。)

我不希望脚本考虑此变量的值1(p = 1)。所以我有一个查询字符串,如:

http://www.mysite.ru/mypage/some_page2?p=1

并希望通过 htaccess 将用户重定向到页面:

http://www.mysite.ru/mypage/some_page2

如果htaccess规则处理仅值“1”,而且“”,“bla-bla-bla”就像

那样会很好
http://www.mysite.ru/mypage/some_page2?p=$#^&*_not_right_value
http://www.mysite.ru/mypage/some_page2?p=

感谢您的关注。

UPD:

我的案例的工作解决方案:

RewriteCond %{QUERY_STRING} ^p=1$
RewriteRule ^(.*)$ /$1? [R,L]

2 个答案:

答案 0 :(得分:1)

通过.htaccess查询字符串操作通常只能通过mod_rewrite完成。我没有测试过,但以下内容应该与您的需求接近。

RewriteEngine on
RewriteCond %{QUERY_STRING} p=1 [OR]
RewriteCond %{QUERY_STRING} p=[^0-9]
RewriteRule (.*) http://www.mysite.ru/$1 [R, L]

第二个条件只是测试p =后跟一个数字。一旦测试,规则可以扩展到测试p后只存在一个数字(即,现在p = 2garbage可以工作)但最好从基础开始。

答案 1 :(得分:0)

我的案例的工作解决方案:

RewriteCond %{QUERY_STRING} ^p=1$
RewriteRule ^(.*)$ /$1? [R,L]