• Zencart持久链接的Nginx rewrite规则

    Posted on 三月 1st, 2009 inetdemon No comments

    前几天介绍了如何在nginx下作wordpress的伪静态化Joomla的SEF模块设置。今天顺便介绍下如何在nginx下来做zencart的url伪静态化呢? 这里我们对这个过程做个假单的介绍,首先我们假设你使用的是zencart的Ultimate SEO URLs模块,并且已经安装和设置好了该插件。那么现在我们需要做的就是为zencart建立一个nginx的rewrite规则,具体操作方法如下,首先新建一个文件your_nginx_path/conf/zencart_rewrite.conf, 建立如下:
            # if the requested file exists, return it immediately
            if (-f $request_filename) {
                    break;
            }

            rewrite "^/(.*)-p-(.*).html$" /index.php?main_page=product_info&products_id=$2&% last;
            rewrite "^/(.*)-c-(.*).html$" /index.php?main_page=index&cPath=$2&% last;
            rewrite "^/(.*)-m-([0-9]+).html$" /index\.php?main_page=index&manufacturers_id=$2&% last;
            rewrite "^/(.*)-pi-([0-9]+).html$" /index\.php?main_page=popup_image&pID=$2&% last;
            rewrite "^/(.*)-pr-([0-9]+).html$" /index\.php?main_page=product_reviews&products_id=$2&% last;
            rewrite "^/(.*)-pri-([0-9]+).html$" /index\.php?main_page=product_reviews_info&products_id=$2&% last;
            # For wordpress on zencart by Jeff
            rewrite "^/wp/(.*).html$" /index.php?main_page=wordpress&page_id=$1&% last;

            # For eazy pages
            rewrite "^/(.*)-ezp-([0-9]+).html$" /index\.php?main_page=page&id=$2&% last;

            # For Open Operations Info Manager
            rewrite "^(.*)-i-([0-9]+).html" /index.php?main_page=info_manager&pages_id=$2&% last;

            # For dreamscape¡¯s 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;

            # All other pages
            # Don‘t rewrite real files or directories
            rewrite "^(.*).html" /index.php?main_page=$1&% last;

    Leave a reply