# TXTWRK core-first master router — staged switch (Apache 2.4+)
# Root /includes/config.php and php.ini stay in place; existing uploads are not moved.
# Install as DOCUMENT_ROOT/.htaccess only after uploading all /system/core files.
ErrorDocument 404 /error404.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Avoid loops: requests already in core pass through unchanged.
RewriteRule ^system/core(?:/|$) - [END,NC]
# Keep root configuration and customer-generated files accessible at their existing locations.
RewriteRule ^includes/config\.php$ - [END,NC]
RewriteRule ^1-user-files(?:/|$) - [END,NC]
RewriteRule ^1-images/users(?:/|$) - [END,NC]
# Keep root media at its original filesystem path; do not rewrite all 1-images.
# Public canonical host redirects (temporary for testing).
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.txtwrk\.com$ [NC]
RewriteRule ^ https://txtwrk.com%{REQUEST_URI} [R=302,L,NE]
# Existing public redirects
RewriteRule ^country\.php$ /maps.php [R=302,L,NC]
RewriteRule ^uk/?$ /@UnitedKingdom [R=302,L,NC]
RewriteRule ^invest/?$ /@TXTWRK?topic=Invest [R=302,L,NE,NC]
RewriteRule ^q/([A-Za-z0-9_-]{7,24})/?$ /system/core/link_quick_jump.php?code=$1 [END,QSA]
RewriteRule ^@([^/]+)!(.+)$ /@$1?asset=$2 [R=302,L,NE]
RewriteRule ^@([^/]+):(.+?)[!-]?$ /@$1?topic=$2 [R=302,L,NE]
RewriteRule ^(@[^/]+)/$ /$1 [R=302,L]
RewriteRule ^@/$ /login/ [R=302,L]
RewriteRule ^@([^/]+)/?$ /system/core/profile.php?username=$1 [END,QSA]
RewriteRule ^£([^/]+)/?$ /system/core/profile.php?username=$1 [END,QSA]
RewriteRule ^login/?$ /system/core/login.php [END,QSA,NC]
RewriteRule ^logout/?$ /system/core/logout.php [END,QSA,NC]
RewriteRule ^reset/?$ /system/core/reset.php [END,QSA,NC]
RewriteRule ^resetpassword/?$ /system/core/resetPassword.php [END,QSA,NC]
RewriteRule ^activate/?$ /system/core/activate.php [END,QSA,NC]
RewriteRule ^register/?$ /system/core/memberpage.php [END,QSA,NC]
RewriteRule ^terms/?$ /system/core/terms.php [END,QSA,NC]
RewriteRule ^studio/?$ /system/core/studio.php [END,QSA,NC]
RewriteRule ^dev/?$ /system/core/dev.php [END,QSA,NC]
RewriteRule ^safety/?$ /system/core/safety.php [END,QSA,NC]
RewriteRule ^account/?$ /system/core/account_control.php [END,QSA,NC]
RewriteRule ^account/deletion/?$ /system/core/account_pro.php [END,QSA,NC]
RewriteRule ^adverts/?$ /system/core/adverts.php [END,QSA,NC]
RewriteRule ^about/?$ /system/core/about.php [END,QSA,NC]
RewriteRule ^education/?$ /system/core/education.php [END,QSA,NC]
RewriteRule ^workspace/?$ /system/core/workspace/index.php [END,QSA,NC]
RewriteRule ^workspace/(.+)$ /system/core/workspace/$1 [END,QSA,NC]
# Compatibility for public pages only; internal calls should use /system/core/ directly.
RewriteRule ^$ /system/core/index.php [END,QSA]
RewriteRule ^index\.php$ /system/core/index.php [END,QSA,NC]
RewriteRule ^profile\.php$ /system/core/profile.php [END,QSA,NC]
RewriteRule ^viewPost\.php$ /system/core/viewPost.php [END,QSA,NC]
RewriteRule ^info\.php$ /system/core/info.php [END,QSA,NC]
RewriteRule ^maps\.php$ /system/core/maps.php [END,QSA,NC]
RewriteRule ^web\.php$ /system/core/web.php [END,QSA,NC]
RewriteRule ^login\.php$ /system/core/login.php [END,QSA,NC]
RewriteRule ^logout\.php$ /system/core/logout.php [END,QSA,NC]
RewriteRule ^reset\.php$ /system/core/reset.php [END,QSA,NC]
RewriteRule ^resetPassword\.php$ /system/core/resetPassword.php [END,QSA,NC]
RewriteRule ^activate\.php$ /system/core/activate.php [END,QSA,NC]
RewriteRule ^register\.php$ /system/core/register.php [END,QSA,NC]
RewriteRule ^memberpage\.php$ /system/core/memberpage.php [END,QSA,NC]
RewriteRule ^terms\.php$ /system/core/terms.php [END,QSA,NC]
RewriteRule ^studio\.php$ /system/core/studio.php [END,QSA,NC]
RewriteRule ^dev\.php$ /system/core/dev.php [END,QSA,NC]
RewriteRule ^safety\.php$ /system/core/safety.php [END,QSA,NC]
RewriteRule ^account_control\.php$ /system/core/account_control.php [END,QSA,NC]
RewriteRule ^account_pro\.php$ /system/core/account_pro.php [END,QSA,NC]
RewriteRule ^adverts\.php$ /system/core/adverts.php [END,QSA,NC]
RewriteRule ^about\.php$ /system/core/about.php [END,QSA,NC]
RewriteRule ^education\.php$ /system/core/education.php [END,QSA,NC]
RewriteRule ^live_now\.php$ /system/core/live_now.php [END,QSA,NC]
RewriteRule ^business_profile\.php$ /system/core/business_profile.php [END,QSA,NC]
RewriteRule ^postData\.php$ /system/core/postData.php [END,QSA,NC]
RewriteRule ^postTemplate\.php$ /system/core/postTemplate.php [END,QSA,NC]
# Compatibility for old browser-facing shared layouts and application helpers.
RewriteRule ^(layout|1-data-fields|classes)/(.+)$ /system/core/$1/$2 [END,QSA,NC]
RewriteRule ^includes/(?!config\.php$)(.+)$ /system/core/includes/$1 [END,QSA,NC]
# Preserve remaining actual files/directories at the root.
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [END]
# Unrecognised URLs: return 404 rather than redirecting endlessly to the homepage.
</IfModule>
