Twist! uses a gateway URL for some page requests. To do this, the following .htaccess file is located (required) in the hosting root in the public_html folder: RewriteEngine on RewriteBase / # prevent requests for /index.php being overwritten - no infinite loops RewriteRule ^index\.php$ - [L] # give requests for actual files and directories precedence over virtual requests RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # redirect all virtual requests to client /twist/gateway.php RewriteRule . /twist/gateway.php [L -- If the home page is not template-based, index.php contains the actual code for the home page and the rewrite rules do not apply -- If the home page is template-based, -- At LiquidWeb, the absence of a default file (index.php) does not generate a 404 error. This temporarily "breaks" the Twist! single URL model -- The default behavior is to display the contents of the hosting direct (not good) because cPanel is used. -- Until changed the work around is to always have an index.php file even if the home page content is created by Twist! -- The following php script must be placed in the index.php file in each twist site folder: require('twist/admin/config.php'); -- reads the site-specific variables require($strTwistPathMaster . 'core/php/initialize.php'); -- initializes the database interface require($strTwistPathMaster . 'core/php/gateway.php'); -- calls the twist! master gateway code -- Other physical web files will be executed normally -- Virtual URLs (no physical) file, are processed through the Twist! gateway url -- Twist! invokes a gateway url in the installation folder. (/twist/gateway.php) -- The function of gateway.php is as follows: -- call a local configuration file identifying the details of the installation to Twist! -- initialize variables and create a connection to the installation database -- attempt to locate the url in the database -- if found process the url -- the source can be -- if not found report a 404 error