Tuesday, September 30, 2014

Opencart Nginx rewrite rule for seo url

opencart có 2 loại route là route cho home/account và route cho seo, tương ứng với hai route sau:

index.php?route=$1
index.php?_route_=$1


# You may add here your
# server {
#       ...
# }
# statements for each of your virtual hosts to this file

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

server {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;

        root /home/severus/opencart;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.php; #$is_args$args;
                # Uncomment to enable naxsi on this location
                #include /etc/nginx/naxsi.rules;
               
                location  /account {
                if (!-e $request_filename) {
                  rewrite ^/account/(.*)$ /index.php?route=account/$1;
                }
                }

                location  /checkout {
                if (!-e $request_filename) {
                  rewrite ^/checkout/(.*)$ /index.php?route=checkout/$1;
                }
                }

                location  /information {
                if (!-e $request_filename) {
                  rewrite ^/information/(.*)$ /index.php?route=information/$1;
                }
                }

                location  /product/special {
                if (!-e $request_filename) {
                  rewrite ^/product/special /index.php?route=product/special;
                }
                }

                location  /product/manufacturer {
                if (!-e $request_filename) {
                  rewrite ^/product/manufacturer /index.php?route=product/manufacturer;
                }
                }


                location /common/home {
                 rewrite ^ http://domain.com;
                }

                if (!-e $request_filename) {
                  rewrite ^/(.*)$ /index.php?_route_=$1;
                } 
        }

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #       proxy_pass http://127.0.0.1:8080;  
        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 403 404 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ (config\.php|php\.ini) {
                return 444;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
                fastcgi_pass 127.0.0.1:9001;
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

#
#server {
#       listen 8000;
#       listen somename:8080;
#       server_name somename alias another.alias;
#       root html;
#       index index.html index.htm;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}


# HTTPS server
#
#server {
#       listen 443;
#       server_name localhost;
#
#       root html;
#       index index.html index.htm;
#
#       ssl on;
#       ssl_certificate cert.pem;
#       ssl_certificate_key cert.key;
#
#       ssl_session_timeout 5m;
#
#       ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
#       ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
#       ssl_prefer_server_ciphers on;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}

Monday, September 15, 2014

ngày cũ của hôm qua

Lâu rồi không viết, trí nhớ cũng chả tốt như xưa, viết linh tinh vài dòng về những điều đã qua vậy, cũng tập quên chuyện không đáng nhớ.

Viết rồi nhớ quên đi kẻo lại nặng lòng, dù gì cũng 3 năm rồi, không có bữa tiệc nào không tàn, người cũng có lúc chia ly. Hi vọng không mang óan hờn mà gặp mặt.

Ba năm gắn bó với nhóm, cũng không ít tranh cãi, hầu hết mình sai, chuyện cũng không nên nhắc lại, ai đúng ai sai có gì quan trọng đâu, kể ra cũng khối chuyện vui, không có archvn chắc mình không được như hôm nay, mình của hôm nay không thể không có hình ảnh của archvn.

Chuyện chỉ có vậy, viết vài dòng ăn mày quá khứ, những tháng ngày không thể quên, khép lại một chặng đường nông nổi,

Sài Gòn
16/9/2014
Severus