Zen Cart嵌套目录的Nginx Rewrite规则,Zen Cart V1.5.1,Ultimate SEO 2.212,nginx/1.4.2下测试通过
完整规则如下
# if the requested file exists, return it immediately
if (-f $request_filename) {
break;
}
#For Ultimate SEO URLs
rewrite ^/(.*)-p-([0-9]+).html$ /index.php?main_page=product_info&products_id=$2&$args last;
rewrite ^/(.*)-c-([0-9]+)_([0-9]+)/$ /index.php?main_page=index&cPath=$2_$3&$args last;
rewrite ^/(.*)-c-([0-9]+)/$ /index.php?main_page=index&cPath=$2&$args last;
rewrite ^/(.*)-m-([0-9]+).html$ /index.php?main_page=index&manufacturers_id=$2&$args last;
rewrite ^/(.*)-pi-([0-9]+).html$ /index.php?main_page=popup_image&pID=$2&$args last;
rewrite ^/(.*)-pr-([0-9]+).html$ /index.php?main_page=product_reviews&products_id=$2&$args last;
rewrite ^/(.*)-pri-([0-9]+).html$ /index.php?main_page=product_reviews_info&products_id=$2&$args last;
# For eazy pages
rewrite ^/(.*)-ezp-([0-9]+).html$ /index.php?main_page=page&id=$2&$args last;
# For Open Operations Info Manager
rewrite ^/(.*)-i-([0-9]+).html$ /index.php?main_page=info_manager&pages_id=$2&$args 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;
请注意这条Rewrite规则,这就是嵌套目录规则
1
rewrite ^/(.*)-c-([0-9]+)_([0-9]+)/$ /index.php?main_page=index&cPath=$2_$3&$args last;
附录,Wordpress安装在子目录时的Rewrite 规则
location / {
rewrite ^/blog/wp-admin$ /blog/wp-admin/ permanent;
if (-f $request_filename/index.html){
rewrite ^/blog/(.*) /blog/$1/index.html break;
}
if (-f $request_filename/index.php){
rewrite ^/blog/(.*) /blog/$1/index.php;
}
if (!-f $request_filename){
rewrite ^/blog/(.*) /blog/index.php;
}
}
|