2010-02-10 4 views
0

Je voudrais rediriger http://www.mydomain.com/service vers http://www.mydomain.com:PORTPORT est le port du service qui servira les pages.Redirection de port .htaccess avec Apache

  1. Est-il possible DONNAIT apache qui est ya écoute sur le port 80 donc qui effectuera la redirection, et il est un service sans rapport avec ce qui est à l'écoute sur PORT?

  2. Quelle est la syntaxe? J'ai essayé des trucs comme:

    RewriteRule ^service$ http://www.mydomain.com:PORT

    mais je ne reçois que d'une erreur de serveur interne 500.

Merci pour votre aide.

EDIT:

Comme Vinko suggéré il y a une ligne utile dans le journal d'erreur:

[alert] [client 192.168.1.4] /path/to/the/site/root/.htaccess: 
Invalid command 'Option', perhaps misspelled or defined by a module not 
included in the server configuration 

qui venait de la ligne:

Option +FollowSymlinks 

Maintenant, il fonctionne, mais ... l'adresse change, et j'aimerais qu'elle ne le fasse pas. Je voudrais avoir le même comportement qu'avec une redirection classique, où le changement d'adresse est transparent (par exemple mydomain.com/service > mydomain.com/?var=service).

Répondre

1

L'erreur 500 indique que mod_rewrite n'est pas activé. Vérifiez le journal des erreurs pour tester la théorie et, si cela est correct, chargez le module dans votre configuration.

Si incorrect, modifiez la question avec l'erreur dans le journal. Chaque erreur 500 a une ligne correspondante dans le journal des erreurs.

0

Vous devez ajouter Redirect à la fin de la directive:

RewriteRule ^service$ http://www.mydomain.com:PORT [R] 

Jouer avec le regex pour le faire fonctionner bien. :)

+1

L'indicateur R est implicite si l'URL commence par http: // donc pas besoin de l'utiliser –