diff --git a/backend/app/service/website.go b/backend/app/service/website.go
index f94a20bd3..8cc0473b7 100644
--- a/backend/app/service/website.go
+++ b/backend/app/service/website.go
@@ -346,7 +346,8 @@ func (w WebsiteService) CreateWebsite(create request.WebsiteCreate) (err error)
}
if len(create.FtpUser) != 0 && len(create.FtpPassword) != 0 {
- itemID, err := NewIFtpService().Create(dto.FtpCreate{User: create.FtpUser, Password: create.FtpPassword, Path: path.Join(global.CONF.System.BaseDir, "1panel/apps/openresty/openresty/www/sites", website.Alias, "index")})
+ indexDir := path.Join(nginxInstall.GetPath(), "www", "sites", website.Alias, "index")
+ itemID, err := NewIFtpService().Create(dto.FtpCreate{User: create.FtpUser, Password: create.FtpPassword, Path: indexDir})
if err != nil {
global.LOG.Errorf("create ftp for website failed, err: %v", err)
}
diff --git a/backend/app/service/website_utils.go b/backend/app/service/website_utils.go
index 38c4a59e8..089c7dbe3 100644
--- a/backend/app/service/website_utils.go
+++ b/backend/app/service/website_utils.go
@@ -80,18 +80,23 @@ func createIndexFile(website *model.Website, runtime *model.Runtime) error {
if err != nil {
return err
}
+ var (
+ indexPath string
+ indexContent string
+ websiteService = NewIWebsiteService()
+ indexFolder = path.Join(nginxInstall.GetPath(), "www", "sites", website.Alias, "index")
+ )
- indexFolder := path.Join(constant.AppInstallDir, constant.AppOpenresty, nginxInstall.Name, "www", "sites", website.Alias, "index")
- indexPath := ""
- indexContent := ""
switch website.Type {
case constant.Static:
indexPath = path.Join(indexFolder, "index.html")
- indexContent = string(nginx_conf.Index)
+ indexHtml, _ := websiteService.GetDefaultHtml("index")
+ indexContent = indexHtml.Content
case constant.Runtime:
if runtime.Type == constant.RuntimePHP {
indexPath = path.Join(indexFolder, "index.php")
- indexContent = string(nginx_conf.IndexPHP)
+ indexPhp, _ := websiteService.GetDefaultHtml("php")
+ indexContent = indexPhp.Content
}
}
@@ -114,6 +119,13 @@ func createIndexFile(website *model.Website, runtime *model.Runtime) error {
if err := fileOp.WriteFile(indexPath, strings.NewReader(indexContent), 0755); err != nil {
return err
}
+
+ html404, _ := websiteService.GetDefaultHtml("404")
+ path404 := path.Join(indexFolder, "404.html")
+ if err := fileOp.WriteFile(path404, strings.NewReader(html404.Content), 0755); err != nil {
+ return err
+ }
+
return nil
}
@@ -245,12 +257,14 @@ func configDefaultNginx(website *model.Website, domains []model.WebsiteDomain, a
server.UpdateRootProxy([]string{proxy})
case constant.Static:
server.UpdateRoot(rootIndex)
+ server.UpdateDirective("error_page", []string{"404", "/404.html"})
case constant.Proxy:
nginxInclude := fmt.Sprintf("/www/sites/%s/proxy/*.conf", website.Alias)
server.UpdateDirective("include", []string{nginxInclude})
case constant.Runtime:
switch runtime.Type {
case constant.RuntimePHP:
+ server.UpdateDirective("error_page", []string{"404", "/404.html"})
if runtime.Resource == constant.ResourceLocal {
switch runtime.Type {
case constant.RuntimePHP:
diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts
index 910e22100..43d5e4b73 100644
--- a/frontend/src/lang/modules/en.ts
+++ b/frontend/src/lang/modules/en.ts
@@ -2039,8 +2039,9 @@ const message = {
domain404: 'Website page does not exist',
indexHtml: 'Static website default page',
stopHtml: 'Website stop page',
- indePhp: 'PHP website default page',
+ indexPHP: 'PHP website default page',
sslExpireDate: 'Certificate expiration date',
+ website404Helper: 'Website 404 error page only supports PHP runtime environment websites and static websites',
},
php: {
short_open_tag: 'Short tag support',
diff --git a/frontend/src/lang/modules/tw.ts b/frontend/src/lang/modules/tw.ts
index 158ea3886..e03de7f2c 100644
--- a/frontend/src/lang/modules/tw.ts
+++ b/frontend/src/lang/modules/tw.ts
@@ -1898,8 +1898,9 @@ const message = {
domain404: '網站不存在頁面',
indexHtml: '靜態網站預設頁',
stopHtml: '網站停用頁',
- indePhp: 'PHP 網站預設頁',
+ indexPHP: 'PHP 網站預設頁',
sslExpireDate: '憑證過期時間',
+ website404Helper: '網站 404 錯誤頁僅支援 PHP 運行環境網站和靜態網站',
},
php: {
short_open_tag: '短標簽支持',
diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts
index af6939a93..ff7b74f25 100644
--- a/frontend/src/lang/modules/zh.ts
+++ b/frontend/src/lang/modules/zh.ts
@@ -1900,8 +1900,9 @@ const message = {
domain404: '网站不存在页',
indexHtml: '静态网站默认页',
stopHtml: '网站停用页',
- indePhp: 'PHP 网站默认页',
+ indexPHP: 'PHP 网站默认页',
sslExpireDate: '证书过期时间',
+ website404Helper: '网站 404 错误页仅支持 PHP 运行环境网站和静态网站',
},
php: {
short_open_tag: '短标签支持',
diff --git a/frontend/src/views/website/website/html/index.vue b/frontend/src/views/website/website/html/index.vue
index 7dcbb61c3..51fabd630 100644
--- a/frontend/src/views/website/website/html/index.vue
+++ b/frontend/src/views/website/website/html/index.vue
@@ -9,18 +9,22 @@