Vasiliy Toporov
Vasiliy Toporov

Reputation: 875

Htaccess redirect depending on the value of variable

I have some difficulties with such an easy problem.

On our site we've got a paginator, wich works with GET-variable "p" (p=1 - is the first page, p=2 - second and so on).

I do not want the script to consider the value 1 of this variable (p=1). So I've got the query string like:

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

and want to redirect user via htaccess to page:

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

It would be nice, if htaccess rule handle not only value "1", but also "","bla-bla-bla" like

http://www.mysite.ru/mypage/some_page2?p=$#^&*_not_right_value
http://www.mysite.ru/mypage/some_page2?p=

Thank you for your attention.

UPD:

The working solution for my case:

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

Upvotes: 0

Views: 502

Answers (2)

Vasiliy Toporov
Vasiliy Toporov

Reputation: 875

The working solution for my case:

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

Upvotes: 0

Wige
Wige

Reputation: 3918

Query string manipulation via .htaccess can generally only be done via mod_rewrite. I haven't tested it, but the following should be close to what you need.

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

The second condition simply tests that the p= is followed by a number. Once tested, the rule can be expanded to test that only a number exists after p (ie, right now p=2garbage would work) but it is better to start off with just the basics.

Upvotes: 1

Related Questions