2010-01-27 5 views
1

J'ai un domaine, mattpotts.com et ai mis en place un sous-domaine dev.mattpotts.com pour moi de développer sur et ensuite copier les fichiers dans le domaine normal quand ils sont prêts à aller.Combiner la réécriture d'URL (pour forcer https) avec l'authentification http?

Ma structure de répertoire est la suivante et dev.mattpotts.com des points à dev/

+-public_html/ 
    +-project1/ 
    +-project2/ 
    +-project3/ 
    +-dev/ 
    +-project1 
    +-project2 
    +-project3

Je veux essentiellement être en mesure d'aller http://mattpotts.com/project1-https://dev.mattpotts.com/project1 en ajoutant dev..

J'ai le suivant .htaccess dans dev/ et cela fonctionne, tout ce que doit faire est force https. Je veux forcer https afin que je puisse utiliser de manière sécurisée l'authentification http dans le répertoire. Cependant, quand je le combine avec les règles suivantes, cela ne fonctionne pas. J'ai mon .htpasswd mis en place mais je n'ai même pas encore vu le formulaire de connexion.

AuthType Basic 
AuthName "Dev Protected Area" 
AuthUserFile .htpasswd 
Require valid-user

Comment puis-je combiner avec succès pour définir des.htaccessrègles?

Modifier, des choses très étranges se produisent!

https://dev.mattpotts.com/project1/ affiche 'bonjour!' à partir de la version non de développement du site (note https) http://dev.mattpotts.com/project1/ affiche 'hello dev!' (comme désiré) de la version de dev. Que se passe t-il ici?!

Répondre

0

Vous nous avez indiqué où se trouve votre fichier .htaccess, mais vous ne nous avez pas indiqué où se trouve votre fichier .htpasswd. Selon la documentation Apache sur AuthUserFile:

Syntaxe: AuthUserFile fichier-chemin

Fichier chemin est le chemin vers l'utilisateur fichier . S'il n'est pas absolu (, c'est-à-dire, si il ne commence pas par une barre oblique), il est traité comme relatif au ServerRoot.

En d'autres termes, il cherche le .htpasswd quelque part comme /etc/apache2/.htpasswd. Donc, soit déplacez votre fichier .htpasswd là, soit faites en sorte que votre directive contienne un chemin absolu vers le fichier, par ex.:

AuthType  Basic 
AuthName  "Dev Protected Area" 
AuthUserFile /home/mattpots.com/public_html/dev/.htpasswd 
Require  valid-user 

Cependant, pour des raisons de sécurité, je recommande fortement de garder votre fichier .htpasswd en dehors de la racine de votre document.

0

Ces problèmes doivent être indépendants les uns des autres: est-ce que je comprends correctement que la partie "force HTTPS" fonctionne? Cela dit, AuthUserFile .htpasswd peut rechercher .htpasswd au mauvais endroit. La solution la plus simple est de mettre le chemin complet et le nom, par ex. AuthUserFile /home/matt/www/public_html/dev/.htpasswd (ou partout où vous avez le répertoire de développement).

+0

J'ai défini correctement le chemin .htpasswd maintenant et cela fonctionne mais je ne suis pas sûr de savoir comment bien! Pouvez-vous s'il vous plaît essayer http://dev.mattpotts.com/project1/ et http://mattpotts.com/dev/project1/ ils devraient tous les deux être protégés par auth mais je ne pense pas que le premier est. – Matthew