zencart程序做伪静态 + 301 + 屏蔽某些恶意蜘蛛

注意规则的存放先后顺序为 屏蔽蜘蛛->301重定向->伪静态


  • 首先在模块⇒AMRewrite中,创建新的.conf,例如取名zencart_301_useragent.conf


  • 将以下规则存放入zencart_301_useragent.conf,保存
    #这里屏蔽了以下十五种蜘蛛
    if ( $http_user_agent ~ AhrefsBot ){
    return 403;
    }
    if ( $http_user_agent ~ YandexBot ){
    return 403;
    }
    if ( $http_user_agent ~ MJ12bot ){
    return 403;
    }
    if ( $http_user_agent ~ RU_Bot ){
    return 403;
    }
    if ( $http_user_agent ~ Ezooms ){
    return 403;
    }
    if ( $http_user_agent ~ Yeti ){
    return 403;
    }
    if ( $http_user_agent ~ BLEXBot ){
    return 403;
    }
    if ( $http_user_agent ~ Exabot ){
    return 403;
    }
    if ( $http_user_agent ~ YisouSpider ){
    return 403;
    }
    if ( $http_user_agent ~ sandcrawlerbot ){
    return 403;
    }
    if ( $http_user_agent ~ ShopWiki ){
    return 403;
    }
    if ( $http_user_agent ~ Genieo ){
    return 403;
    }
    if ( $http_user_agent ~ Aboundex ){
    return 403;
    }
    if ( $http_user_agent ~ coccoc ){
    return 403;
    }
    
    #这301重定向规则
    if ($host  = 'zencart2.vnow.info' ) {
    rewrite ^/(.*)$ http://zencart.vnow.info/$1 permanent;
    }
    
    
    #这是zencart伪静态规则
    location / {
    
    if (-d $request_filename) {
    break;
    }
    if (-f $request_filename) {
    break;
    }
    
    #handle the new URL formats
    rewrite ^/(.*)-c-([0-9_]+)/(.*)-p-([0-9]+)(.*)$ /index.php?main_page=product_info&products_id=$4&cPath=$2&$args last;
    rewrite ^/(.*)-c-([0-9_]+)/(.*)-pi-([0-9]+)(.*)$ /index.php?main_page=popup_image&pID=$4&cPath=$2&$args last;
    rewrite ^/(.*)-c-([0-9_]+)/(.*)-pr-([0-9]+)(.*)$ /index.php?main_page=product_reviews&products_id=$4&cPath=$2&$args last;
    rewrite ^/(.*)-c-([0-9_]+)/(.*)-pri-([0-9]+)(.*)$ /index.php?main_page=product_reviews_info&products_id=$4&cPath=$2&$args last;
    
    # From Ultimate SEO URLs 
    rewrite ^/(.*)-p-([0-9]+)(.*)$ /index.php?main_page=product_info&products_id=$2&$args last;
    rewrite ^/(.*)-m-([0-9]+)(.*)$ /index.php?main_page=index&manufacturers_id=$2&$args last;
    rewrite ^/(.*)-pi-([0-9]+)(.*)$ /index.php?main_page=popup_image&pID=$2&$args last;
    rewrite ^/(.*)-pr-([0-9]+)(.*)$ /index.php?main_page=product_reviews&products_id=$2&$args last;
    rewrite ^/(.*)-pri-([0-9]+)(.*)$ /index.php?main_page=product_reviews_info&products_id=$2&$args last;
    rewrite ^/(.*)-ezp-([0-9]+)(.*)$ /index.php?main_page=page&id=$2&$args last;
    rewrite ^/(.*)-c-([0-9_]+)(.*)$ /index.php?main_page=index&cPath=$2&$args last;
    
    # For product tags
    rewrite "^/producttags/([\w]+)/?" /index.php?main_page=producttags&letter=$1&% last;
    rewrite "^/producttags/([\w]+)/([0-9]+).html" /index.php?main_page=producttags&letter=$1&page=$2&% last;
    
    # For Open Operations Info Manager
    rewrite "^/(.*)-i-([0-9]+).html" /index.php?main_page=info_manager&pages_id=$2&% last;
    
    # For News & Articles Manager
    rewrite "^/news/?" /index.php?main_page=news&% last;
    rewrite "^/news/rss.xml" /index.php?main_page=news_rss&% last;
    rewrite "^/news/archive/?" /index.php?main_page=news_archive&% last;
    rewrite "^/news/([0-9]{4})-([0-9]{2})-([0-9]{2}).html" /index.php?main_page=news&date=$1-$2-$3&% last;
    rewrite "^/news/archive/([0-9]{4})-([0-9]{2}).html" /index.php?main_page=news_archive&date=$1-$2&% last;
    rewrite "^/news/(.*)-a-([0-9]+)-comments.html" /index.php?main_page=news_comments&article_id=$2&% last;
    rewrite "^/news/(.*)-a-([0-9]+).html" /index.php?main_page=news_article&article_id=$2&% last;
    
    rewrite "^(.*).html" /index.php?main_page=$1&% last;
    rewrite ^/(.*)$ /index.php?main_page=$1&$args last;
    }
  • 对应虚拟主机站点,编辑,rewrite规则中选择 zencart_301_useragent.conf,保存即可。
    如果你不需要301重定向,或不需要屏蔽上方的蜘蛛,将不需要的部分删除即可。