web-dev-qa-db-fra.com

Utiliser un fichier .htaccess différent en fonction de l'en-tête du navigateur

Je souhaite avoir la possibilité de tester les règles . Htaccess avant de les enregistrer dans le fichier principal . Htaccess.

Est-il possible de définir un en-tête de requête spécifique et de faire en sorte qu'Apache utilise un ensemble de règles provenant d'un fichier .htaccess différent.

1

Cela peut être possible avec les nouvelles fonctionnalités d'Apache 2.4 qui incluent les directives <If>, <ElseIf> et <Else>.

http://httpd.Apache.org/docs/2.4/mod/core.html#if

Exemple possible:

AccessFileName .htaccess
<If "$req{Host} != 'test.mydomain.com'">
    AccessFileName .htaccess_test
</If>

Pour les versions plus anciennes, je ne suis pas au courant de telles options. Peut-être que SetEnvIf fonctionnerait.

http://httpd.Apache.org/docs/2.2/mod/mod_setenvif.html

SetEnvIf Remote_Host "^test\.mydomain\.com$" htaccess_file_name=.htaccess_test
SetEnvIf Remote_Host "^www\.mydomain\.com$" htaccess_file_name=.htaccess
AccessFileName htaccess_file_name

Je n'ai pas essayé cela, donc je ne peux pas dire que ça va marcher, mais ça vaut le coup.

2
Dave Lozier