http: Handler now uses redirects to ensure dirs end on a /
This commit is contained in:
		
							parent
							
								
									7c9e1a429e
								
							
						
					
					
						commit
						62885b2e37
					
				@ -34,6 +34,7 @@ func (this *Handler) ServeHTTP (res http.ResponseWriter, req *http.Request) {
 | 
			
		||||
		pat = "/" + pat
 | 
			
		||||
		req.URL.Path = pat
 | 
			
		||||
	}
 | 
			
		||||
	hasTrailingSlash := strings.HasSuffix(pat, "/")
 | 
			
		||||
	pat = path.Clean(req.URL.Path)
 | 
			
		||||
 | 
			
		||||
	info, err := statFile(filesystem, pathToName(pat))
 | 
			
		||||
@ -44,6 +45,12 @@ func (this *Handler) ServeHTTP (res http.ResponseWriter, req *http.Request) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if info.IsDir() {
 | 
			
		||||
		// ensure the path ends with a /
 | 
			
		||||
		if !hasTrailingSlash {
 | 
			
		||||
			http.Redirect(res, req, pat + "/", http.StatusMovedPermanently)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
		// try to find an index
 | 
			
		||||
		for _, base := range this.Index {
 | 
			
		||||
			currentPath := path.Join(pat, base)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user