diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 69a414c910ab11edba4d3384b8978beb20c95905..e54569acfe0b57540bc0fc8cc0d165b02bcc0aec 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -74,59 +74,31 @@ variables:
     # Activate virtual environment
     - source .venv/bin/activate
 
-# Only anchors
+# Rules anchors
 # -----------------------------------------------------------------------------
-# https://docs.gitlab.com/ee/ci/yaml/README.html#only
-# List all names of refs that can be used with key (only|except):refs using
-# anchors to avoid having to modify multiple times. Refs are:
-# - Branches names based on git flow: https://danielkummer.github.io/git-flow-cheatsheet/
-# - merge_requests (https://docs.gitlab.com/ee/ci/yaml/README.html#onlyexcept-basic)
-# - tags (https://docs.gitlab.com/ee/ci/yaml/README.html#onlyexcept-basic)
-.refs_names:
-  - &ref_release /release-*/
-  - &ref_feature /feature-*/
-  - &ref_hotfix /hotfix-*/
-  - &ref_bugfix /bugfix-*/
-  - &ref_develop develop
-  - &ref_master master
-  - &ref_merge_requests merge_requests
-  - &ref_tags tags
-
-# Specify on which branch, tags or on merge_requests CI should be done.
-# Jobs under only_dev anchor will be run if branch name are compliant with git
-# flow branch which are not `develop` neither `master` and will be run on
-# merge_request
-.only_dev: &only_dev
-  only:
-    refs:
-      - *ref_release
-      - *ref_feature
-      - *ref_hotfix
-      - *ref_bugfix
-      - *ref_merge_requests
-
-# Jobs under only_pre_prod anchor will be run on `develop` (i.e. pre-release)
-# and `master` (release) branch.
-.only_pre_prod: &only_pre_prod
-  only:
-    refs:
-      - *ref_develop
-      - *ref_master
-
-# Jobs under only_prod anchor will be run on tagged commit.
-.only_prod: &only_prod
-  only:
-    refs:
-      - *ref_tags
-
-# Jobs under only_trigger anchor will be run on `develop` (i.e. pre-release)
-# `master` (release) branch and tagged commit.
-.only_trigger: &only_trigger
-  only:
-    refs:
-      - *ref_develop
-      - *ref_master
-      - *ref_tags
+# https://docs.gitlab.com/ee/ci/yaml/README.html#rules
+# Defining bash regexp test
+.rules_regexp:
+  - &rules_regexp_dev $CI_COMMIT_BRANCH =~ /^((release|feature|hotfix|bugfix)-|merge_request_)*/
+  - &rules_regexp_pre_prod $CI_COMMIT_BRANCH =~ /(develop|master)/
+  - &rules_regexp_prod $CI_COMMIT_TAG
+
+# Defining rules that now replace only to run jobs under specific condition
+# and define variables
+.rules_dev: &rules_dev
+  if: *rules_regexp_dev
+  variables:
+    CI_DEPLOY_TYPE: "dev"
+
+.rules_pre_prod: &rules_pre_prod
+  if: *rules_regexp_pre_prod
+  variables:
+    CI_DEPLOY_TYPE: "pre_prod"
+
+.rules_prod: &rules_prod
+  if: *rules_regexp_prod
+  variables:
+    CI_DEPLOY_TYPE: "prod"
 
 # Tag anchors
 # -----------------------------------------------------------------------------
diff --git a/docs/.gitlab-ci.yml b/docs/.gitlab-ci.yml
index 54bcdfd14e971b92a2541be9f09b3d8f16264119..76c8c8193c8b45e50cad80214d09afa95155c7e2 100644
--- a/docs/.gitlab-ci.yml
+++ b/docs/.gitlab-ci.yml
@@ -1,3 +1,4 @@
+
 ### BEGIN MKDOCS TEMPLATE ###
 ### WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !###
 ### Modified content will be overwritten when updating.###
@@ -98,7 +99,7 @@ variables:
         export RSYNC_DEST="${RSYNC_DEST}/pre_prod/"
         export ONLINE_DEST="${ONLINE_DEST}/pre_prod/"
       ;;
-      "pre_prod")
+      "prod")
         export RSYNC_DEST="${RSYNC_DEST}/"
         export ONLINE_DEST="${ONLINE_DEST}/"
       ;;
@@ -116,8 +117,8 @@ variables:
   - &rules_regexp_dev $CI_COMMIT_BRANCH =~ /^((release|feature|hotfix|bugfix)-|merge_request_)*/
   - &rules_regexp_pre_prod $CI_COMMIT_BRANCH =~ /(develop|master)/
   - &rules_regexp_prod $CI_COMMIT_TAG
-  - &rules_regexp_trigger_main (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && ($MAIN_PROJECT && $MAIN_PROJECT != $CI_PROJECT_PATH)
-  - &rules_regexp_trigger_info (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && ($MAIN_PROJECT == "")
+  - &rules_regexp_trigger_main (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && ($MAIN_PROJECT != null && $MAIN_PROJECT != $CI_PROJECT_PATH)
+  - &rules_regexp_trigger_info (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && $MAIN_PROJECT == null
 
 # Defining rules that now replace only to run jobs under specific condition
 # and define variables
@@ -252,9 +253,9 @@ script_pre_test_ensure_variable: &script_pre_test_ensure_variable
         return 1
       fi
   rules:
-    - *rules_dev
-    - *rules_pre_prod
     - *rules_prod
+    - *rules_pre_prod
+    - *rules_dev
 
 # Jobs in test stage
 # -----------------------------------------------------------------------------
@@ -360,7 +361,6 @@ script_deploy_html: &script_deploy_html
       fi
     - ln -s "${LAST_TAG}" "latest"
     - mv "latest" "tmp/${PROJECT_PATH}"
-    - rsync -avz "tmp/" "${RSYNC_DEST}"
     - echo -e "
       <!DOCTYPE html>\n
       <html>\n
@@ -377,12 +377,12 @@ script_deploy_html: &script_deploy_html
       <body>\n
         Redirecting to <a href='${ONLINE_PATH}'>${ONLINE_PATH}</a>...\n
       </body>\n
-      </html>" > index.html
-    - rsync -avz index.html "${RSYNC_DEST}${PROJECT_PATH}/"
+      </html>" > tmp/${PROJECT_PATH}/../index.html
+    - rsync -avz "tmp/" "${RSYNC_DEST}"
   rules:
-    - *rules_dev
-    - *rules_pre_prod
     - *rules_prod
+    - *rules_pre_prod
+    - *rules_dev
 
 # Jobs in post_deploy stage
 # -----------------------------------------------------------------------------
@@ -424,3 +424,4 @@ inform_triggers_variables:
 # vim: fdm=indent
 # *****************************************************************************
 ### END MKDOCS TEMPLATE ###
+