I want to redirect https://example.com/folder to https://example.com/otherfolder/anotherfolder but have the address bar still display https://example.com/folder.
None of the .htaccess tutorials on doing this work, and the only ones I can find on StackOverflow are much more complicated problems.
So far I have tried:
RewriteEngine On
RewriteRule ^folder/?$ /otherfolder/anotherfolder
I get a rewrite/redirect but the URL is not masked.
Edit: Solved, see below. Missing trailing slash.
I assume
/otherfolder/anotherfoldermust be a physical filesystem directory (from the name "folder" and the fact there wouldn't ordinarily be a way to route the request otherwise). In which case you are missing a trailing slash on the substitution string (target URL).Without the trailing slash, mod_dir will trigger an external 301 redirect to append the trailing slash and expose the rewritten filesystem directory so you will ultimately see an external redirect to
/otherfolder/anotherfolder/(note the trailing slash).Note that this would be a 301 (permanent) redirect and cached persistently by the browser.
So, the rule should be written like this instead, with a trailing slash:
You will likely need the
L(orEND) flag if you have other directives.