2010-06-11 4 views
2

J'essaie d'utiliser .htaccess dans le dossier racine d'un serveur Ubuntu/Apache2 afin de masquer un sous-domaine dans un sous-dossier et je reçois toujours une erreur 500 interne. Je sais que je fais quelque chose de stupide et c'est une erreur stupide qui cause le problème. J'ai vérifié tous les threads similaires sur SO et en ligne et chaque fois que j'essaie leur avis, le 500 continue.Réécriture de sous-domaine dans un sous-dossier avec htaccess

Voici mon code.

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^admin\.mydomain\.com.*$ 
RewriteRule (.*) intranet/$1 [L] 

Ce que je veux produire est que si un utilisateur visite admin.mydomain.com ils auront le contenu du dossier admin.mydomain.com/intranet/ mais leur barre d'URL sera toujours admin.mydomain. com. Une idée de ce que je fais mal?

En outre, certains des threads en ligne ont parlé de problèmes possibles avec ce système. Est-ce la meilleure façon de faire ce masquage, devrais-je utiliser une configuration vhost?

Répondre

2

La règle de réécriture devrait fonctionner, bien que je serais probablement écrire

RewriteEngine on 
RewriteBase/#omit if in a <Directory> or .htaccess 
RewriteCond %{HTTP_HOST} =admin.mydomain.com 
RewriteRule ^(?!intranet/).* intranet/$0 

Maintenant, vous pouvez-vous vérifier le journal des erreurs Apache. Il vous dira probablement quelle est l'erreur. Je suppose que vous n'avez pas activé mod_rewrite dans httpd.conf.

+0

Si je fais un apache2ctl -M, je vois rewrite_module dans la liste des modules. Lorsque je consulte le journal des erreurs d'apache2, la requête "dépasse la limite de 10 redirections internes en raison d'une erreur de configuration probable." LimitInternalRecursion "pour augmenter la limite si nécessaire.Utilisez le 'LogLevel debug' pour obtenir un backtrace." Je suis nouveau dans ce domaine d'administration de serveur, donc des idées seraient utiles? De plus, j'ai remarqué que vous avez changé^admin \ .mondomaine \ .com. Idem avec (. *) À. * Et $ 1 à $ 0 ... que font ces changements? –

+0

En outre, j'ai essayé le = "admin.mydomain.com" et il ne se déclenche pas. J'ai fait un test de redirection RewriteRule. * Http://www.mydomain.com, et il ne se déclenche pas avec = "admin.mydomain.com" mais avec^admin \ .mondomaine \ .com. * $ –

+0

@ Owen Allen OK, j'ai corrigé la récursion avec lookahead négatif, et supprimé les guillemets autour du domaine. Cela devrait fonctionner. '$ 0' est la correspondance globale de l'expression régulière. – Artefacto