From 24307e85b7ee2f12a93bf26297759e5b63b618db Mon Sep 17 00:00:00 2001 From: Jim Remsik Date: Mon, 29 Jun 2015 16:52:40 -0700 Subject: [PATCH 1/2] Massage some verbiage The grammar felt off on the sentence I changed. You can take or leave this PR, I won't be offended if you dislike my suggestion. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d45aba3ef..a71bdea19 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Documentation](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](https://godoc.org/github.com/mholt/caddy) [![Build Status](https://img.shields.io/travis/mholt/caddy.svg?style=flat-square)](https://travis-ci.org/mholt/caddy) -Caddy is a lightweight, general-purpose web server for Windows, Mac, Linux, BSD, and [Android](https://github.com/mholt/caddy/wiki/Running-Caddy-on-Android). It is a capable alternative to other popular web servers that is easy to use. +Caddy is a lightweight, general-purpose web server for Windows, Mac, Linux, BSD, and [Android](https://github.com/mholt/caddy/wiki/Running-Caddy-on-Android). It is a capable alternative to other popular and easy to use web servers. The most notable features are HTTP/2, Virtual Hosts, TLS + SNI, and easy configuration with a [Caddyfile](https://caddyserver.com/docs/caddyfile). Usually, you have one Caddyfile per site. Most directives for the Caddyfile invoke a layer of middleware which can be [used in your own Go programs](https://github.com/mholt/caddy/wiki/Using-Caddy-Middleware-in-Your-Own-Programs). From 4240817a3ac83a43b0713b593eaa7531de2f0f9a Mon Sep 17 00:00:00 2001 From: Abiola Ibrahim Date: Tue, 30 Jun 2015 11:54:50 +0100 Subject: [PATCH 2/2] Fix for Issue 141: index not found, 502 Bad Gateway. --- middleware/fastcgi/fastcgi.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/middleware/fastcgi/fastcgi.go b/middleware/fastcgi/fastcgi.go index bc3050204..2a57a84b4 100644 --- a/middleware/fastcgi/fastcgi.go +++ b/middleware/fastcgi/fastcgi.go @@ -176,7 +176,6 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, fpath string) (map[string] "CONTENT_TYPE": r.Header.Get("Content-Type"), "GATEWAY_INTERFACE": "CGI/1.1", "PATH_INFO": pathInfo, - "PATH_TRANSLATED": filepath.Join(h.AbsRoot, pathInfo), // Info: http://www.oreilly.com/openbook/cgi/ch02_04.html "QUERY_STRING": r.URL.RawQuery, "REMOTE_ADDR": ip, "REMOTE_HOST": ip, // For speed, remote host lookups disabled @@ -198,6 +197,13 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, fpath string) (map[string] "SCRIPT_NAME": scriptName, } + // compliance with the CGI specification that PATH_TRANSLATED + // should only exist if PATH_INFO is defined. + // Info: https://www.ietf.org/rfc/rfc3875 Page 14 + if env["PATH_INFO"] != "" { + env["PATH_TRANSLATED"] = filepath.Join(h.AbsRoot, pathInfo) // Info: http://www.oreilly.com/openbook/cgi/ch02_04.html + } + // Add env variables from config for _, envVar := range rule.EnvVars { env[envVar[0]] = envVar[1]