Je crée un serveur DNS de blocage de publication qui redirige tous les domaines de publication vers une instance de Apache . Donc quelque chose comme
www.addomain.com
est redirigé vers
dnsserver.localnetwork
Cependant, je rencontre parfois des liens qui ressemblent davantage à
www.addomain.com/some_ad
qui est redirigé vers
dnsserver.localnetwork/some_ad
qui n'existe même pas et génère donc une erreur 404
.
J'espérais qu'il serait possible de faire en sorte qu'Apache serve index.html
, quelle que soit la demande réelle. Sinon, si vous avez une solution alternative ne faisant pas appel à Apache, je suis partant pour ça aussi.
Dans Ubuntu, assurez-vous que mod_alias
est activé:
Sudo a2enmod alias
Ensuite, dans votre directive VirtualHost, vous pouvez utiliser AliasMatch
.
Exemple:
<VirtualHost *:80>
DocumentRoot /path/to/your/Host
ServerName yourdomain.com
DirectoryIndex index.html
AliasMatch ^/(.*)$ /path/to/your/Host/index.html
<Directory "/path/to/your/Host">
Require all granted
</Directory>
</VirtualHost>
Maintenant tout est redirigé vers /index.html
.
Vous avez besoin d'une règle de réécriture dans votre fichier .htaccess. Quelque chose comme ce qui suit devrait fonctionner:
RewriteRule ^*$ http://www.addomain.com/index.html [R=301,NC,L]
Une autre option plus simple consisterait à remplacer la page d'erreur 404 par la page statique que vous souhaitez afficher pour toutes les pages de votre site. Alors, cherchez cette ligne (ou quelque chose de similaire) dans vos fichiers de configuration Apache2:
ErrorDocument 404 /errors/not_found.html
Et remplacez le "/errors/not_found.html" par: "/index.html"