Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

301 redirecting pagination with get variables

I'm trying to set 301 redirects on pages that have 'page=1' in the URL to stop duplicate content issues.

e.g.

http://www.domain.com/reviews/?page=1 to http://www.domain.com/reviews/

I've tried all of the variations I can find and can't seem to get anything to work.

RewriteRule ^reviews(/)?page=1$ http://www.domain.com/reviews/ [L,R=301]

RewriteRule ^(.*)/?page=1 http://www.domain.com/reviews/ [R=301,L]

RewriteCond %{QUERY_STRING} page=1
RewriteRule ^reviews$ http://www.domain.com/reviews/ [R=301,L,NE]

None of these have worked. I'm not really sure what else to try.

There are multiple different sections of the site that I need to do this for:

reviews
news
videos
accessories
hardware

An overall solution to redirect all ?page=1 URLs to their relevant section would be best.

like image 799
James Avatar asked Nov 28 '25 12:11

James


1 Answers

Use this code to redirect every URI with ?page=1 to one without the query parameter:

RewriteCond %{QUERY_STRING} ^page=1(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L]

Or else if you want to redirect ONLY /reviews URI then

RewriteCond %{QUERY_STRING} ^page=1(&|$) [NC]
RewriteRule ^(reviews)/?$ /$1? [R=301,L]
like image 187
anubhava Avatar answered Dec 01 '25 16:12

anubhava



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!