2011-02-07 3 views
1

J'ai le problème commun de vouloir rediriger les requêtes pour un répertoire d'accès restreint à l'adresse http https, afin que les informations de connexion des utilisateurs sont envoyés dans un environnement sécurisé façon.Réorientation http https pour un répertoire, via .htaccess, en utilisant mod_alias seulement

Cependant, je n'ai pas activé mod_rewrite sur mon serveur. Je n'ai que mod_alias. Cela signifie que je dois utiliser la commande RedirectMatch. Je ne peux pas utiliser les solutions habituelles qui utilisent RewriteCond et RewriteRule.

(Une note sur la politique: je suis responsable du sous-site petit-faire frire dans une très grande organisation, de sorte que les administrateurs de serveur sont peu susceptibles d'être prêt à changer la configuration du serveur pour moi!)

La ligne suivante fonctionne, mais forme une boucle infinie (car l'URL réécrite est encore pris par l'expression régulière initiale):

RedirectMatch permanent ^/intranet(.*)$ https://example.com/intranet$1 

un de mes gars informatiques internes a suggéré que j'évite la boucle infinie en déplaçant les fichiers vers un nouveau répertoire avec un nouveau nom (par exemple/intranet2 /). Cela me semble plutôt moche. Et les gens pourraient encore accidentellement/délibérément revenir à une connexion non sécurisée en visitant http://example.com/intranet2/ directement.

Alors j'ai essayé, mais ça n'a pas marché:

RedirectMatch permanent ^http:(.*)/intranet(.*)$ https://example.com/intranet$1 

Je soupçonne que cela n'a pas fonctionné parce que le premier argument doit être un chemin de fichier à partir du répertoire racine, donc il ne peut pas commencer avec "http:".

Donc: de meilleures idées comment faire cela?

Répondre

0

directives mod_alias travaillent sur URIs demande (la substance qui vient après le nom de domaine dans une URL), qui ne sont pas des chemins ou des URL. Vous ne pouvez pas faire correspondre le système.

Questions connexes