(htaccess)分页,如果npage参数等于1重定向到相对基本URL

时间:2015-12-14 22:03:11

标签: .htaccess redirect pagination

我在网址中有3个参数:

  1. ?郎
  2. &安培;页
  3. &安培; NPAGE
  4. 如果第三个参数npage的值为1,我需要重定向到相对基本URL。

    来自网址

    \en\news\npage-1\
    

    我想重定向到

    \en\news\
    

    我的htaccess代码是这样的:

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    
    # first parameter (lang)
    RewriteRule ^([^/]+)/$ index.php?lang=$1 [L,QSA]
    
    # second parameter (page)
    RewriteRule ^([^/]+)/([^/]+)/$ index.php?lang=$1&page=$2 [L,QSA]
    
    # third parameter (npage) with pagination
    RewriteRule ^([^/]+)/([^/]+)/npage-(\d+)/$ index.php?lang=$1&page=$2&npage=$3 [L,QSA]
    
    # if first page, redirect to relative base url
    RewriteCond %{QUERY_STRING} (^|&)npage=1(&|$) [NC]
    RewriteRule ^ %{REQUEST_URI}? [R=301,L]
    

1 个答案:

答案 0 :(得分:2)

尝试:

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# first parameter (lang)
RewriteRule ^([^/]+)/$ index.php?lang=$1 [L,QSA]

# second parameter (page)
RewriteRule ^([^/]+)/([^/]+)/$ index.php?lang=$1&page=$2 [L,QSA]

# third parameter (npage) with pagination
RewriteRule ^([^/]+)/([^/]+)/npage-(\d+)/$ index.php?lang=$1&page=$2&npage=$3 [QSA]

# if first page, redirect to relative base url
RewriteCond %{QUERY_STRING} (^|&)npage=1(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L]

没有[L]标志