diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go
index 02c017243e..cbcc10a4d4 100644
--- a/routers/api/v1/repo/repo.go
+++ b/routers/api/v1/repo/repo.go
@@ -5,7 +5,7 @@
 package repo
 
 import (
-	"path"
+	"strings"
 
 	api "code.gitea.io/sdk/gitea"
 
@@ -21,7 +21,7 @@ import (
 // see https://github.com/gogits/go-gogs-client/wiki/Repositories#search-repositories
 func Search(ctx *context.APIContext) {
 	opts := &models.SearchRepoOptions{
-		Keyword:  path.Base(ctx.Query("q")),
+		Keyword:  strings.Trim(ctx.Query("q"), " "),
 		OwnerID:  ctx.QueryInt64("uid"),
 		PageSize: convert.ToCorrectPageSize(ctx.QueryInt("limit")),
 	}
diff --git a/routers/api/v1/user/user.go b/routers/api/v1/user/user.go
index 20ed180ef7..de99fade46 100644
--- a/routers/api/v1/user/user.go
+++ b/routers/api/v1/user/user.go
@@ -5,6 +5,8 @@
 package user
 
 import (
+	"strings"
+
 	"github.com/Unknwon/com"
 
 	api "code.gitea.io/sdk/gitea"
@@ -16,7 +18,7 @@ import (
 // Search search users
 func Search(ctx *context.APIContext) {
 	opts := &models.SearchUserOptions{
-		Keyword:  ctx.Query("q"),
+		Keyword:  strings.Trim(ctx.Query("q"), " "),
 		Type:     models.UserTypeIndividual,
 		PageSize: com.StrTo(ctx.Query("limit")).MustInt(),
 	}
diff --git a/routers/home.go b/routers/home.go
index f5172182d5..6f211f4f62 100644
--- a/routers/home.go
+++ b/routers/home.go
@@ -5,12 +5,12 @@
 package routers
 
 import (
+	"bytes"
 	"fmt"
+	"strings"
 
 	"github.com/Unknwon/paginater"
 
-	"bytes"
-
 	"code.gitea.io/gitea/models"
 	"code.gitea.io/gitea/modules/base"
 	"code.gitea.io/gitea/modules/context"
@@ -100,7 +100,7 @@ func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) {
 		orderBy = "created_unix DESC"
 	}
 
-	keyword := ctx.Query("q")
+	keyword := strings.Trim(ctx.Query("q"), " ")
 	if len(keyword) == 0 {
 		repos, err = opts.Ranger(&models.SearchRepoOptions{
 			Page:     page,
@@ -199,7 +199,7 @@ func RenderUserSearch(ctx *context.Context, opts *UserSearchOptions) {
 		orderBy = "id DESC"
 	}
 
-	keyword := ctx.Query("q")
+	keyword := strings.Trim(ctx.Query("q"), " ")
 	if len(keyword) == 0 {
 		users, err = opts.Ranger(&models.SearchUserOptions{OrderBy: orderBy,
 			Page:     page,
diff --git a/routers/repo/commit.go b/routers/repo/commit.go
index f165ed8525..37e57ac06f 100644
--- a/routers/repo/commit.go
+++ b/routers/repo/commit.go
@@ -7,6 +7,7 @@ package repo
 import (
 	"container/list"
 	"path"
+	"strings"
 
 	"code.gitea.io/git"
 	"code.gitea.io/gitea/models"
@@ -106,7 +107,7 @@ func Graph(ctx *context.Context) {
 func SearchCommits(ctx *context.Context) {
 	ctx.Data["PageIsCommits"] = true
 
-	keyword := ctx.Query("q")
+	keyword := strings.Trim(ctx.Query("q"), " ")
 	if len(keyword) == 0 {
 		ctx.Redirect(ctx.Repo.RepoLink + "/commits/" + ctx.Repo.BranchName)
 		return
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index bc9e72a1ac..17c3b56c2e 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -145,7 +145,7 @@ func Issues(ctx *context.Context) {
 	milestoneID := ctx.QueryInt64("milestone")
 	isShowClosed := ctx.Query("state") == "closed"
 
-	keyword := ctx.Query("q")
+	keyword := strings.Trim(ctx.Query("q"), " ")
 	if bytes.Contains([]byte(keyword), []byte{0x00}) {
 		keyword = ""
 	}
diff --git a/routers/user/notification.go b/routers/user/notification.go
index deb98d589c..77a4a59dc8 100644
--- a/routers/user/notification.go
+++ b/routers/user/notification.go
@@ -40,7 +40,7 @@ func GetNotificationCount(c *context.Context) {
 // Notifications is the notifications page
 func Notifications(c *context.Context) {
 	var (
-		keyword = c.Query("q")
+		keyword = strings.Trim(c.Query("q"), " ")
 		status  models.NotificationStatus
 		page    = c.QueryInt("page")
 		perPage = c.QueryInt("perPage")
diff --git a/routers/user/profile.go b/routers/user/profile.go
index cca4391a70..f0b1be3060 100644
--- a/routers/user/profile.go
+++ b/routers/user/profile.go
@@ -155,7 +155,7 @@ func Profile(ctx *context.Context) {
 			ctx.Data["SortType"] = "recentupdate"
 		}
 
-		keyword := ctx.Query("q")
+		keyword := strings.Trim(ctx.Query("q"), " ")
 		ctx.Data["Keyword"] = keyword
 		if len(keyword) == 0 {
 			var total int