Browse Source

[WebApp] Add rewrite rule for /public folder to .htaccess file (Laravel and Symfony)

Robert Zollner 6 years ago
parent
commit
b816e9af53

+ 16 - 0
web/src/app/WebApp/Installers/LaravelSetup.php

@@ -19,4 +19,20 @@ class LaravelSetup extends BaseSetup {
         ],
     ];
 
+    public function install(array $options=null) : bool
+    {
+        parent::install($options);
+        $result = null;
+
+        $htaccess_rewrite = '
+<IfModule mod_rewrite.c>
+    RewriteEngine On
+    RewriteRule ^(.*)$ public/$1 [L]
+</IfModule>';
+
+        $tmp_configpath = $this->saveTempFile($htaccess_rewrite);
+        $this->appcontext->runUser('v-move-fs-file',[$tmp_configpath, $this->getDocRoot(".htaccess")], $result);
+
+        return ($result->code === 0);
+    }
 }

+ 19 - 0
web/src/app/WebApp/Installers/SymfonySetup.php

@@ -19,4 +19,23 @@ class SymfonySetup extends BaseSetup {
         ],
     ];
 
+    public function install(array $options=null) : bool
+    {
+        parent::install($options);
+        $result = null;
+
+        $htaccess_rewrite = '
+<IfModule mod_rewrite.c>
+    RewriteEngine On
+    RewriteRule ^(.*)$ public/$1 [L]
+</IfModule>';
+
+        $this->appcontext->runComposer(["config",  "-d " . $this->getDocRoot(), "extra.symfony.allow-contrib", "true"], $result);
+        $this->appcontext->runComposer(["require", "-d " . $this->getDocRoot(), "symfony/apache-pack"], $result);
+
+        $tmp_configpath = $this->saveTempFile($htaccess_rewrite);
+        $this->appcontext->runUser('v-move-fs-file',[$tmp_configpath, $this->getDocRoot(".htaccess")], $result);
+
+        return ($result->code === 0);
+    }
 }