2010-06-12 9 views
5

Je suis vraiment nouveau dans le module mod_rewrite d'apache. J'ai une page appelée http://abc dans l'intranet de mon entreprise. Je souhaite que les utilisateurs soient redirigés vers http://abc.somecompanyname.com chaque fois qu'ils saisissent http://abc dans la barre d'URL. Est-ce que quelqu'un pourrait fournir et donner des exemples ou me diriger dans la bonne direction?Comment rediriger un utilisateur utilisant Apache Rewrite vers le nom de domaine complet?

Je pense que cela devrait être une question facile à répondre. Merci à tous pour vos contributions.

-Mark

Répondre

4

Vous pouvez accomplir cela avec une définition VirtualHost aussi simple que cela, les demandes de traitement du serveur abc:

<VirtualHost *:80> 
    ServerName abc 
    RewriteEngine on 
    RewriteRule ^/(.*)$ http://abc.somecompanyname.com/$1 [R,L] 
</VirtualHost> 
+0

pouvons-nous le rediriger sans changer d'URL? Par exemple, si j'écris http://mywebsite.example.com/a il redirigera la requête vers http: // localhost: 7777/a sans changer l'URL de mon navigateur? – rsabir

+0

rsabir: Ce que vous demandez est généralement appelé un proxy pas une redirection – serverhorror

1

Je trouve les conseils dans le Apache2 URL Rewriting Guide mieux fonctionné.

J'ai fini avec:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^foo\.bar\.com [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/(.*)   http://foo.bar.com/$1 [L,R] 

Le "RewriteEngine sur" la ligne n'a pas été inclus dans l'exemple Apache2. Peut-être que c'est généralement activé par défaut mais dans mon cas, j'avais besoin de l'ajouter.

4

Citation de Apache 2.4 documentation:

La meilleure façon de résoudre cela ne concerne pas du tout mod_rewrite, mais utilise plutôt la directive Redirect placé dans un hôte virtuel pour le nom d'hôte non canonique (s).

<VirtualHost *:80> 
    ServerName undesired.example.com 
    ServerAlias example.com notthis.example.com 

    Redirect/http://www.example.com/ 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName www.example.com 
</VirtualHost> 

Cela nécessite un autre hôte virtuel, mais il ne manque pas de ceux-ci. La solution fonctionne très bien pour moi - et j'aime comment la redirection des hôtes 'non désirés' et la configuration de l'hôte canonique sont séparées.

+0

Cela fonctionne très bien, même les noms de chemin et obtenir des paramètres sont en cours de redirection. – derFunk

Questions connexes