]> _ Git - fluidbook-toolbox.git/commitdiff
wait #7083 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 17 Sep 2024 12:31:25 +0000 (14:31 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 17 Sep 2024 12:31:25 +0000 (14:31 +0200)
app/Http/Controllers/Admin/Operations/Tools/StaticSiteUploader.php
app/Models/ToolWebflow.php

index 107f62a396640c3d82615938e809ef4c197229a8..3264cb0a7171a34f5a13abaa75b0b86f91043c82 100644 (file)
@@ -73,6 +73,9 @@ trait StaticSiteUploader
         return redirect($site['url']);
     }
 
+    /**
+     * @throws \Exception
+     */
     public static function rsync($from, $site, $path = '')
     {
         if (is_string($site)) {
@@ -80,6 +83,6 @@ trait StaticSiteUploader
         }
 
         $transfer = SFTP::getInstance($site['server'], $site['user'], $site['password'], $site['path'], $site['port'] ?? 22);
-        $transfer->copy($from, $path, false);
+        $transfer->copy($from, $path, true);
     }
 }
index abf6ec9b2179a4b233fabd5f37d66ede50df6010..0fdc6b534e6a7c8656fc6790b00b212355a1d370 100644 (file)
@@ -74,6 +74,7 @@ class ToolWebflow extends ToolboxTranslatableModel
         $this->addField('seo', BunchOfFieldsMultiple::class, '', ['translatable' => true, 'edit_label' => '%url | %seo_title', 'allows_add' => false, 'allows_delete' => false, 'allows_clone' => false, 'allows_reorder' => false, 'bunch' => SEOPage::class, 'tab' => __('SEO')]);
         $this->addField('former_sitemap', Code::class, __('Ancienne sitemap'), ['language' => 'xml', 'tab' => __('Redirections')]);
         $this->addField('redirections', BunchOfFieldsMultiple::class, '', ['translatable' => false, 'edit_label' => '%from → %to', 'bunch' => Redirection::class, 'tab' => __('Redirections')]);
+        $this->addField('force_https', Checkbox::class, __('Forcer HTTPS'), ['hint' => __('Décocher lorsque le site est installé derrière un proxy prenant en charge le certificat SSL'), 'default' => true, 'tab' => __('Redirections')]);
         $this->addField('api', Hidden::class);
     }
 
@@ -485,7 +486,16 @@ class ToolWebflow extends ToolboxTranslatableModel
         $htaccess = '<IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /
+    ';
 
+        if($this->force_https){
+            $htaccess.='
+    RewriteCond %{HTTPS} off
+    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=308,L]
+    ';
+        }
+
+        $htaccess.='
     RewriteCond %{HTTP_HOST} !=' . $domain . '
        RewriteRule ^(.*)$ https://' . $domain . '/$1 [R=301,L]
 
@@ -512,7 +522,6 @@ class ToolWebflow extends ToolboxTranslatableModel
     {
 
 
-
         $urlmaps = $this->getURLMaps();
         $urlmap = $urlmaps[$locale];
         $origRelative = $relative;
@@ -538,7 +547,6 @@ class ToolWebflow extends ToolboxTranslatableModel
         }
 
 
-
         // Replace URL
         foreach ($urlmap as $k => $v) {
             $html = str_replace(ltrim($k, '/'), ltrim($v, '/'), $html);
@@ -561,11 +569,10 @@ class ToolWebflow extends ToolboxTranslatableModel
             $localeURL .= "</script>";
         }
 
-        $html = str_replace('</head>', '<link href="/css/custom.css" rel="stylesheet">' ."\n". '</head>', $html);
+        $html = str_replace('</head>', '<link href="/css/custom.css" rel="stylesheet">' . "\n" . '</head>', $html);
         $html = str_replace('</body>', $localeURL . '<script src="/js/custom.js"></script>' . "\n" . '</body>', $html);
 
 
-
         $html = preg_replace('/\s+lang="[a-zA-Z\-_]{2,6}"/', ' lang="' . $locale . '"', $html);
 
 
@@ -577,7 +584,6 @@ class ToolWebflow extends ToolboxTranslatableModel
         // Images
 
 
-
         // SEO
         if (!$isMainLocale || $htmlPage) {
             foreach ($seo as $s) {