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.
LogLevel
backtrace because this directive cannot be defined within .htaccess and Acquia Cloud do not provide access to the contexts it can be defined.