# IQON Static Deployment — reg.ru Purpose: пошаговая инструкция для замены WordPress-сайта `iqon.com` на статический прототип через reg.ru файловый менеджер. ## Contents - [Prerequisites](#prerequisites) - [Deployment Steps](#deployment-steps) - [Post-Deploy Verification](#post-deploy-verification) - [Rollback](#rollback) - [File Inventory](#file-inventory) ## Prerequisites - [ ] Backup live site files and database completed (`server-backup-20260518/`) - [ ] Database archive `u0012812_iqon` confirmed as downloaded - [ ] Access to reg.ru hosting panel (ISPmanager or file manager) - [ ] All prototype pages pass local visual QA (`python3 -m http.server 8061`) ## Deployment Steps ### Step 1: Backup Current Live Site Before any changes, create a dated backup of the live site through the reg.ru panel: 1. Log in to https://www.reg.ru/ → Hosting → Backup 2. Create full backup of `iqon.com` files + `u0012812_iqon` database 3. Confirm backup is downloadable before proceeding ### Step 2: Upload Static Files Upload the following files to `/var/www/u0012812/data/www/iqon.com/` via reg.ru file manager: **Root level:** ``` .htaccess ← NEW (from deploy/) 403.html ← NEW (from deploy/) 404.html ← NEW (from deploy/) index.html ← from repo root styles.css ← from repo root script.js ← from repo root sitemap.xml ← from repo root robots.txt ← from repo root ``` **Subdirectories:** ``` services/index.html services/strategy-governance/index.html services/enterprise-architecture/index.html services/data-analytics/index.html services/infrastructure-cloud/index.html services/security-continuity/index.html industries/index.html case-studies/index.html contact/index.html ``` **Assets (if any):** ``` assets/ ← from repo assets/ ``` ### Step 3: Remove WordPress Files After static files are uploaded and verified: 1. **Do NOT delete yet** — first verify the static site loads correctly 2. Once verified, move (not delete) WordPress files to a `_wordpress_backup/` subdirectory: - `wp-admin/` - `wp-includes/` - `wp-content/` - `wp-login.php` - `wp-cron.php` - `wp-settings.php` - `wp-config.php` (move to `_wordpress_backup/`) - All other `.php` files in root except `.htaccess` 3. Keep `_wordpress_backup/` for 30 days, then delete ### Step 4: Upload .htaccess 1. Upload `deploy/.htaccess` to the site root 2. This replaces the WordPress `.htaccess` 3. Verify redirect behavior immediately (see below) ### Step 5: Remove WordPress Database User (Later) The `u0012812_iqon` database can be kept as archive. It is not accessed by the static site. ## Post-Deploy Verification Run these checks after deployment: ```bash # 1. Homepage loads curl -I -L https://iqon.com/ # Expected: 200, security headers present, no WordPress signals # 2. Security headers present curl -I https://iqon.com/ | grep -i "X-Content-Type-Options\|X-Frame-Options\|Referrer-Policy\|Content-Security-Policy" # Expected: all four headers present # 3. WordPress surfaces blocked curl -I https://iqon.com/wp-json/ # Expected: 403 Forbidden curl -I https://iqon.com/xmlrpc.php # Expected: 403 Forbidden curl -I https://iqon.com/readme.html # Expected: 403 Forbidden # 4. 301 redirects work curl -I -L https://iqon.com/services-solutions/ # Expected: 301 → https://iqon.com/services/ curl -I -L https://iqon.com/homepage/ # Expected: 301 → https://iqon.com/ # 5. All target pages return 200 for path in / /services/ /services/strategy-governance/ /services/enterprise-architecture/ /services/data-analytics/ /services/infrastructure-cloud/ /services/security-continuity/ /industries/ /case-studies/ /contact/; do code=$(curl -o /dev/null -s -w "%{http_code}" "https://iqon.com${path}") echo "${path} → ${code}" done # Expected: all 200 # 6. Contact page has @infobidgebot, no phone/fax curl -sS https://iqon.com/contact/ | grep -c "infobidgebot" # Expected: ≥ 2 curl -sS https://iqon.com/contact/ | grep -c "261 2600\|261 2608\|Fax\|fax" # Expected: 0 # 7. Mixed content check curl -sS https://iqon.com/ | grep -c "http://www\.iqon\|http://iqon\|http://maps\.google" # Expected: 0 # 8. Sitemap accessible curl -I https://iqon.com/sitemap.xml # Expected: 200 curl -I https://iqon.com/robots.txt # Expected: 200 ``` ## Rollback If the static deployment has issues: 1. Log in to reg.ru hosting panel 2. Restore files from the backup created in Step 1 3. If only `.htaccess` caused the issue: restore the original WordPress `.htaccess` from `server-backup-20260518/.htaccess` 4. The WordPress database and theme files in `_wordpress_backup/` can be restored The original WordPress `.htaccess` is preserved in `server-backup-20260518/.htaccess`. ## File Inventory | Source File | Target Path | Action | |------------|-------------|--------| | `deploy/.htaccess` | `/` root | Upload (replaces WP .htaccess) | | `deploy/404.html` | `/` root | Upload | | `deploy/403.html` | `/` root | Upload | | `index.html` | `/` root | Upload | | `styles.css` | `/` root | Upload | | `script.js` | `/` root | Upload | | `sitemap.xml` | `/` root | Upload | | `robots.txt` | `/` root | Upload | | `services/index.html` | `/services/` | Upload | | `services/strategy-governance/index.html` | `/services/strategy-governance/` | Upload | | `services/enterprise-architecture/index.html` | `/services/enterprise-architecture/` | Upload | | `services/data-analytics/index.html` | `/services/data-analytics/` | Upload | | `services/infrastructure-cloud/index.html` | `/services/infrastructure-cloud/` | Upload | | `services/security-continuity/index.html` | `/services/security-continuity/` | Upload | | `industries/index.html` | `/industries/` | Upload | | `case-studies/index.html` | `/case-studies/` | Upload | | `contact/index.html` | `/contact/` | Upload | | `assets/*` | `/assets/` | Upload (if any) | --- *Created: 2026-05-20* *Updated: 2026-05-20*