Docs / .htaccess — the two modes, and which one you want

.htaccess — the two modes, and which one you want

If you added something to .htaccess and the site behaves as though you hadn't, read this first. Nothing is broken — your site is probably in the mode that translates .htaccess rather than reading it, and translation covers common rules, not all of them.

Open Domains → Apache / .htaccess. The badge at the top of the card says which mode this site is in.

The two modes

Translated (the default). Your .htaccess is converted into the fast web server's own rules. Common directives work. Anything the converter cannot reproduce is skipped, and it is listed for you in the table below the card. A change to the file takes effect only after you press Translate now — the file is not read on every request.

Full .htaccess. Your file is read directly, exactly as it was on cPanel. Every directive Apache supports works, and a change takes effect on the very next request. Slightly slower than translated mode, because each request passes through one extra step.

Which one you want

Stay on Translated if your .htaccess is a WordPress permalink block, a force-HTTPS redirect, a www/non-www redirect, a Redirect line, a directory listing switch, or basic-auth protection. That is most sites, and this is the faster path.

Turn on Full .htaccess if:

  • the table under the card lists directives you actually need,
  • you set PHP values from .htaccess (php_value, php_flag) — these are never applied in translated mode, no matter what the file says,
  • you use SetEnv, SetEnvIf, RequestHeader, AddType, AddHandler, or rewrite rules with conditions the converter warns about,
  • or you are moving a site in from elsewhere and would rather not audit its .htaccess at all.

There is no penalty for choosing full support other than a small amount of latency. There is no charge, no extra step afterwards, and no configuration.

Reading the table

Under the mode card, each row is one directive the converter could not reproduce, with its line number and what to do about it.

  • In Translated mode, the note above the button says how many of those are being ignored right now. Those rules are not running.
  • In Full .htaccess mode, the same list appears, but the note says they are working — the list only matters if you ever switch back.

If the table is empty, nothing in your .htaccess is being lost, and translated mode is doing everything the file asks.

Switching

One button. In translated mode it reads Turn on full .htaccess support; in full mode it reads Switch to translated (faster).

  • It takes a few seconds. The card says Applying — this can take a few seconds… while it works.
  • Your site does not go down. The new path is put in place before the old one is taken away, in both directions, and if any part fails both sides are put back as they were.
  • Nothing else about the account changes. Your files, your document root, your PHP version, your certificate and your HTTPS all stay exactly as they are. Your site's PHP still runs as your own user, isolated from every other account on the server, in both modes.
  • Visitor addresses in your access log stay the real visitor addresses.
  • You can switch back at any time, as often as you like.

Coming from cPanel

You do not have to do anything. When an account is imported from a cPanel backup, the importer translates the .htaccess files it finds, and if any directive cannot be translated the account is put into full .htaccess mode straight away. The site behaves as it did on the old server from the first request.

The import report shows this as two lines: how many rules were translated and how many need review, then whether the mode was switched.

Sites that never needed anything unusual stay on the faster translated path.

When something looks wrong

A rule still does nothing after you edited the file, and you are in translated mode. Press Translate now. In this mode the file is read when you ask, not on every request.

Every page answers HTTP 500 right after you turn on full support. Switch back — the button puts you where you were — and tell your hosting provider what happened. This means Apache on that server is missing a module your file needs (RewriteEngine On is the usual one). It is a server-side setting, not something you can fix from your account.

Every page answers 502 and you are in full mode. The Apache process on the server is not running. Sites in translated mode are unaffected, which is a useful thing to tell your provider.

The switch is refused with a message about Apache ports. The server has run out of the slots it allocates for this mode. Only your provider can raise it.

The Apache / .htaccess tile is not in your panel at all. Either your hosting plan does not include it, or the server was not set up with Apache available. Ask your provider which.

What full mode does not change

  • Your certificate. HTTPS is terminated before Apache ever sees the request, so issuing and renewal are untouched.
  • Isolation. PHP runs as your account's own user in both modes.
  • Your bandwidth figures and visitor statistics.
  • Any other account on the server. This setting is yours alone — it is decided per account, not per server.