I am trying to server a static HTML site from /sites/default/files/staticsite
and make it available via a subdomain. I’m hosting the site on Acquia Cloud, and their docs describe Maintaining a static microsite alongside Drupal’s docroot.
This solution is working, with the exception of index.html page (homepage) which returns a 404.
http://subdomain.example.com/
returns a 404http://subdomain.example.com/index.html
success
The setup describe in the docs
I have added the required domain to my Acquia Cloud dashboard so the server will accept requests for the subdomain.
I have updated docroot/.htaccess
with the following RewriteRule to redirect requests to the static files. The following rules are the first lines in the .htaccess
file.
<IfModule mod_rewrite.c> RewriteEngine on # Only serve the static site for a particular host. RewriteCond %{HTTP_HOST} ^subdomain.example.com.au$ [OR] RewriteCond %{HTTP_HOST} ^dev-subdomain.example.com.au$ [OR] RewriteCond %{HTTP_HOST} ^stage-subdomain.example.com.au$ # Don't loop anything targeting the actual mask directory, to allow # for linked scripts, stylesheets etc in the static HTML RewriteCond %{REQUEST_URI} !^/sites/default/files/staticsite/ #Any requests that made it this far are served from the /staticsite/ directory RewriteRule ^(.*)$ /sites/default/files/staticsite/$1 [PT,L] </IfModule>
The files have been uploaded to sites/default/files/staticsite
Things I’ve tried
I thought DirectoryIndex
must be disabled
for these directories so I tried adding DirectoryIndex index.html
in both /sites/default/files
and /sites/default/files/staticsite
but neither have had an effect.
I tried elevating the DirectoryIndex
directive to the top of the existing /sites/default/files/.htaccess
file, as well as placing it last. Neither fixed the 404 error.
I’ve tried removing the /sites/default/files/.htaccess
and adding a new .htaccess
file with just DirectoryIndex index.html
to test if the SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
was impacting things. No change still got 404.
I’ve tried adding the [END]
flag to the RewriteRule
to stop the current rewrite process and subsequent rewrite processes, but still got the 404.
Log entries
When making a request to `http://subdomain.example.com/ I see the following entry in the Apache error log:
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace.
I’m unable to define ‘LogLevel` because Acquia Cloud do not provide access to the server config, virtual host, and directory contexts which this directive can be defined in.