Nginx and Zencart

I am wanting to utilize nginx with zencart. The issue I am having
isn’t getting Zencart to work, but to recreate the .htaccess files
that are located underneath Zencart’s sub directories. Below is the
.htaccess file located in the images directory. I can block with no
problem, it’s allowing that I am having a problem with:

@copyright Copyright 2003-2010 Zen Cart Development Team

@license http://www.zen-cart.com/license/2_0.txt GNU Public License

V2.0

@version $Id: .htaccess 16111 2010-04-29 22:39:02Z drbyte $

This is used with Apache WebServers

The following blocks direct HTTP requests to all filetypes in this

directory recursively, except certain approved exceptions

It also prevents the ability of any scripts to run. No type of

script, be it PHP, PERL or whatever, can normally be executed if
ExecCGI is disabled.

Will also prevent people from seeing what is in the dir. and any

sub-directories

For this to work, you must include either ‘All’ or at least: ‘Limit’

and ‘Indexes’ parameters to the AllowOverride configuration in your
apache/conf/httpd.conf file.

Additionally, if you want the added protection offered by the

OPTIONS directive below, you’ll need to add ‘Options’ to the
AllowOverride list, if ‘All’ is not specified.

Example:

#<Directory “/usr/local/apache/htdocs”>

AllowOverride Limit Options Indexes

#
###############################

deny everything

<FilesMatch “.*”>
Order Allow,Deny
Deny from all

but now allow just certain necessary files:

<FilesMatch “.*.(jpe?g|JPE?G|gif|GIF|png|PNG|swf|SWF)$” >
Order Allow,Deny
Allow from all

IndexIgnore /

Thanks for any help you can give!

Brent

I have found the solution, even though it’s a pretty dirty one. Had
to utilize if statements. If someone has a better solution, I would
welcome it. Here is what is working:

server {
listen 80;
server_name example.com;
access_log /home/exampleusr/logs/example.com.access.log;
error_log /home/exampleusr/logs/example.com.error.log;
root /home/exampleusr/public_html;
index index.html index.php index.htm;

location / {
try_files $uri $uri/ index.php;
}

    location /docs {
            if ($request_uri ~*

(^/|.js|.css|.jpg|.gif|.png|.html)$ ) {
break;
}
return 403;
}

    location /editors {
            if ($request_uri ~*

(^/|.js|.css|.jpg|.gif|.png|.html|.xml)$ ) {
break;
}
return 403;
}

    location /email {
            if ($request_uri ~*

(^/|.jpg|.JPG|.jpeg|.JPEG|.gif|.GIF|.png|.PNG)$ ) {
break;
}
return 403;
}

    location /extras {
            if ($request_uri ~* (^\/|\.php|\.html)$ ) {
            break;
    }
            return 403;
    }

location /images {
if ($request_uri ~*
(^/|.jpg|.JPG|.jpeg|.JPEG|.gif|.GIF|.png|.PNG|.swf|.SWF|.WMA)$
) {
break;
}
return 403;
}

    location /(download|pub) {
       if ($request_uri ~*

(^/|.zip|.ZIP|.gzip|.pdf|.PDF|.mp3|.MP3|.swf|.SWF|.wma|.WMA|.wmv|.WMV)$
) {
break;
}
return 403;
}

   location /includes {
            if ($request_uri ~*

(^/|.js|.JS|.css|.CSS|.jpg|.JPG|.gif|.GIF|.png|.PNG|.swf|.SWF|.xsl|.XSL)$
) {
break;
}
return 403;
}

   location /media {
            if ($request_uri ~*

(^/|.mp3|.mp4|.swf|.avi|.mpg|.wma|.rm|.ra|.ram|.wmv)$ ) {
break;
}
return 403;
}

   location /admin {
            if ($request_uri ~*

(^/|.php|.js|.css|.jpg|.gif|.png)$ ) {
break;
}
return 403;
}

location = /robots.txt {
access_log off;
log_not_found off;
}

location = /favicon.ico {
access_log off;
error_log off;
log_not_found off;
}

location ~ /. {
access_log off;
log_not_found off;
deny all;
}

location ~ ~$ {
access_log off;
log_not_found off;
deny all;
}

location ~* .php$ {
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
}

}

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs