I have two Apache virtual hosts set up on an Ubuntu 16.04 VPS.

  • site1.example.com is a properly functioning WordPress site.

  • site2.example.com is a newly added site with only index.php in its document root.

When I visit site2.example.com in a browser, it unexpectedly redirects to site1.example.com (the WP site).

However, if I visit site2.example.com/index.php, index.php is displayed as expected.

Here are the contents of the .conf files in /etc/apache2/sites-available:


<VirtualHost *:80>
ServerName site1.example.com
DirectoryIndex index.html index.php
DocumentRoot /var/www/html/site1.example.com/public_html


<VirtualHost *:80>
ServerName site2.example.com
DirectoryIndex index.html index.php
DocumentRoot /var/www/html/site2.example.com/public_html

What can I do to get http://site2.example.com/ to display index.php without being explicitly requested in the URL?

If anyone has any suggestions or needs to see another part of my config, please let me know.

  • "it unexpectedly redirects" - If you examine the network traffic in the browser, do you see an external 3xx redirect? Make sure you've cleared your browser cache. – MrWhite Mar 8 '17 at 1:02
  • 1
    @w3dk Clearing the browser cache resolved the problem. Thanks! I was not aware that something in the browser cache could cause this behavior. I figured requesting a new subdomain url would ensure a request was made to the server. If you'd like to give a short explanation of what may have happened as an answer, I'll mark it as accepted. – Approval Junkie Mar 8 '17 at 1:29

...it unexpectedly redirects to site1.example.com

If you are seeing a 3xx redirect, and you don't currently have any external redirects configured then it's possible you are seeing a cached redirect - which appears to have been the case in this instance. Make sure the browser cache is cleared. Any 301 (permanent) redirects are cached hard by the browser - even if only used briefly for testing. (On the other hand, 302 temporary redirects are not cached.)

Note that site2.example.com/ and site2.example.com/index.php are two different URLs and so are cached independently.

Maybe site2.example.com/ was caught by an earlier canonical domain redirect?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.