开发者

Delete ugly ?pg=1 from URL via .htacess RewriteRule

I have pagination plugin in my CMS which produces ?pg=1 links. I want to redirect this url without this ugly postfix because without it CMS shows first page too.

So, i have url like http://site.ru/category/schock-crane/?pg=1 or http://site.ru/moyka/?type=granit&pg=1 I want to redirect such urls to http://site.ru/category/schock-crane/ and http://site.ru/moyka/?type=granit respectly.

I tried this .htaccess code

RewriteRule (.*)(&|\?)pg=1$ $1 [R=301,L]

I tried this regexp code at regexp trainers - it worked. But at live server no redirect happens.

Here is whole .htaccess file:

AddDefaultCharset Off
#DirectoryIndex index.php index.html

Options +FollowSymLinks
Options -I开发者_如何学Pythonndexes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # fix /?pg=1
    RewriteRule (.*)(&|\?)pg=1$ $1 [R=301,L]

    # fix .palitra-tab
    RewriteCond %{REQUEST_URI} -tab$
    RewriteRule (.*)/([0-9]*)/\.(.*)-tab?$ http://site.ru/redirect.php?id=$2 [R=301,L]

    RewriteCond %{REQUEST_URI} ^/csss/.* [NC]
    RewriteRule csss/(.*)\.css$ css.php?n=$1 [L]

    #RewriteRule ^(.*)/csss/(.*) /test.php [L]

    RewriteRule ^(.*)/base([0-9]+)/?$ $1?base=$2 

    #RewriteCond %{REQUEST_FILENAME} -f
    #RewriteRule \.(gif|jpeg|jpg|png)$ /images/watermark/index.php [L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.+) - [PT,L]

    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*) index.php

    RewriteCond %{HTTP:Authorization}  !^$
    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>


You need to use RewriteCond to examine the query string:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)pg=1(&(.*)|$)
RewriteCond %1%4 (.*?)&?$
RewriteRule ^ %{REQUEST_URI}?%1 [R=301,L]

The second RewriteCond is just to remove a trailing &.


Maybe the missing ^ or / kills the redirect

# fix /?pg=1
RewriteRule ^(.*)(&|\?)pg=1$ /$1 [R=301,L]

or try

RewriteRule ^(.*)(&|\?)pg=1$ http://%{HTTP_HOST}/$1 [R=301,L]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜