.htaccess redirect without changing url in users' address bar

10,930

RewriteRule ^$ /temp [L]

If you have a physical directory temp in the root of your filesystem... and since you have omitted the slash from the end of the RewriteRule substitution then mod_dir will attempt to "fix" the request by appending a slash. It does this by issueing a 301 redirect. (You are then presumably relying on the DirectoryIndex to serve the appropriate file from that directory.)

You can resolve this by appending a slash to the end of the substitution, so mod_dir won't try and do this by issuing a redirect. For example:

RewriteRule ^$ /temp/ [L]

I notice the status code is 301, so is this equivalent to a redirect 301

Yes, that is a 301 (permanent) redirect.

Share:
10,930

Related videos on Youtube

Wen Shenk
Author by

Wen Shenk

Updated on September 18, 2022

Comments

  • Wen Shenk
    Wen Shenk over 1 year

    My website redirects to /temp when visiting the root, I'd like it to appear as the root, without the /temp in the URL address bar.

    I have a simple .htaccess:

    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /
    RewriteRule ^$ /temp [L]
    

    How do I make the address bar show www.example.com instead of www.example.com/temp?

    Also, When I see the network panel, I notice the status code is 301, so is this equivalent to a redirect 301?

  • Wen Shenk
    Wen Shenk almost 8 years
    That's all of my .htaccess. Unless the host(bluehost) has something on theirs
  • Wen Shenk
    Wen Shenk almost 8 years
    I tried it on my own linux server, the behavior is same: z.nycweb.io
  • closetnoc
    closetnoc almost 8 years
    I have not paid attention to RewriteRule for a while, so please forgive me. The OP is missing an R. I am not sure if R is assumed. Certainly, a 301 is the default if you do use an R. It seems to me that a R=302 might work better, however, you are the expert. However, if the OP intends to have the entire site run out of the temp directory, they can simply update the Apache .conf file even if it is temporary. Of course this requires a restart. Just my 1.736 centavos.
  • MrWhite
    MrWhite almost 8 years
    @WenShenk Ah... you've probably got a physical directory called "temp"? I've updated (redone) my answer!
  • Wen Shenk
    Wen Shenk almost 8 years
    That's right. Good answer, just a / was missing. Thanks!