diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 1c2d36e01d..e8fdab183e 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -718,11 +718,13 @@ settings.wiki_desc = Enable wiki system
 settings.use_internal_wiki = Use builtin wiki
 settings.use_external_wiki = Use external wiki
 settings.external_wiki_url = External Wiki URL
+settings.external_wiki_url_error = External Wiki URL is invalid
 settings.external_wiki_url_desc = Visitors will be redirected to the specified URL when they click on the tab.
 settings.issues_desc = Enable issue tracker
 settings.use_internal_issue_tracker = Use builtin issue tracker
 settings.use_external_issue_tracker = Use external issue tracker
 settings.external_tracker_url = External Issue Tracker URL
+settings.external_tracker_url_error = External Issue Tracker URL is invalid
 settings.external_tracker_url_desc = Visitors will be redirected to the specified URL when they click on the tab.
 settings.tracker_url_format = External Issue Tracker URL Format
 settings.tracker_issue_style = External Issue Tracker Naming Style:
diff --git a/routers/repo/setting.go b/routers/repo/setting.go
index 91068d242a..fb6d68ad9b 100644
--- a/routers/repo/setting.go
+++ b/routers/repo/setting.go
@@ -72,6 +72,7 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
 			err := models.NewRepoRedirect(ctx.Repo.Owner.ID, repo.ID, repo.Name, newRepoName)
 			if err != nil {
 				ctx.Handle(500, "NewRepoRedirect", err)
+				return
 			}
 
 			log.Trace("Repository name changed: %s/%s -> %s", ctx.Repo.Owner.Name, repo.Name, newRepoName)
@@ -151,6 +152,12 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
 
 		if form.EnableWiki {
 			if form.EnableExternalWiki {
+				if !strings.HasPrefix(form.ExternalWikiURL, "http://") && !strings.HasPrefix(form.ExternalWikiURL, "https://") {
+					ctx.Flash.Error(ctx.Tr("repo.settings.external_wiki_url_error"))
+					ctx.Redirect(repo.Link() + "/settings")
+					return
+				}
+
 				units = append(units, models.RepoUnit{
 					RepoID: repo.ID,
 					Type:   models.UnitTypeExternalWiki,
@@ -171,10 +178,15 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
 
 		if form.EnableIssues {
 			if form.EnableExternalTracker {
+				if !strings.HasPrefix(form.ExternalTrackerURL, "http://") && !strings.HasPrefix(form.ExternalTrackerURL, "https://") {
+					ctx.Flash.Error(ctx.Tr("repo.settings.external_tracker_url_error"))
+					ctx.Redirect(repo.Link() + "/settings")
+					return
+				}
 				units = append(units, models.RepoUnit{
 					RepoID: repo.ID,
-					Type:   models.UnitTypeExternalWiki,
-					Index:  int(models.UnitTypeExternalWiki),
+					Type:   models.UnitTypeExternalTracker,
+					Index:  int(models.UnitTypeExternalTracker),
 					Config: &models.ExternalTrackerConfig{
 						ExternalTrackerURL:    form.ExternalTrackerURL,
 						ExternalTrackerFormat: form.TrackerURLFormat,