I have a few sites hosted on an apache server. Most of them can be accessed via http and https. One of them may only be accessed over http. Attempts to acccess it via https must be redirected to the 404.php page (except for attempts to access the error page itself - those should be allowed).
I can get a custom text message to appear with the ErrorDocument directive, but I'm having trouble figuring out how to send the users to the 404 page. Here's what the config looks like:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName myserver
ServerAlias myserver
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /path/to/certificatefile.pem
SSLCertificateKeyFile /path/to/keyfile.pem
Include /etc/ssl-apache.conf
DocumentRoot /usr/local/website
Redirect 404 /
# This works!
ErrorDocument 404 "Not here!"
# This tries to redirect to the path to the 404.php file but does *not* work
#ErrorDocument 404 /wordpress/wp-content/themes/Theme1/404.php
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/usr/local/website/html/wordpress">
AllowOverride All
Require all granted
</Directory>
<Directory />
# required for apache 2.4+
AllowOverride All
Require all granted
Options +Includes
XBitHack on
# allows CORS for static content
Header set Access-Control-Allow-Origin *
</Directory>
</VirtualHost>
</IfModule>
Trying to redirect to the 404.php using ErrorDocument results in:
The requested URL / was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
I also tried ErrorDocument 404 https://myserver/wordpress/wp-content/themes/Theme1/404.php
But that resulted in "too many redirects".
How can I get all requests to this VirtualHost to be redirected to the custom 404 page?