Apache RewriteRule de supprimer le port sur n'importe quel nom de domaine

J'ai un serveur virtuel avec une adresse IP, au service d'un nombre de différents sites. L'un d'eux dispose d'un certificat SSL.

J'ai besoin d'ajouter un certificat SSL sur un second domaine pour un usage privé par moi-même, et comme je n'ai qu'une adresse IP, je l'ai ajouté sur le port 8080 au lieu. Cela fonctionne très bien.

Mon problème maintenant est que tous les domaines qui pointent vers le serveur d'affichage de mon site privé si le port 8080 est demandé sur ce domaine.


https://example1.com:8080/-> will show my private site, but shouldn't
https://example2.com:8080/-> will show my private site, but shouldn't
https://desired-domain.com:8080/-> will show my private site, this is correct!

Tous les visiteurs de https://example1.com:8080/ devraient être redirigé vers http://example1.com/, et de même pour example2.com.

J'ai essayé...


RewriteCond %{HTTP_HOST} !desired\-domain\.com [NC]


RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [L,R=301]

...mais le port est ajouté à HTTP_HOST, il sort comme http://example1.com:8080/

Donc, en bref, ma question: comment puis-je rediriger vers l'hôte, mais ignorer la demande de port?


SUPPLÉMENTAIRE

J'ai essayé cette...


RewriteCond %{HTTP_HOST} !(desired-domain.com):8080$ [NC]


RewriteRule ^(.*)$ http://%1$1 [L,R=301]

...mais il redirige vers http://localhost/. C'est mieux que de montrer la mauvaise page du site, même si, comme personne ne devrait être en demandant le port 8080 sur n'importe quel autre domaine de toute façon!

Je pense qu'il y a de mieux "desired-domain.com' regex, mais ma regex mojo n'est pas coule aujourd'hui.

Aussi, j'ai essayé les conseils ici: stackoverflow.com/questions/6814745 mais il n'a rien fait pour moi!
Peut-être spécifier explicitement le port 80 œuvres: RewriteRule ^(.*)$ http://%{HTTP_HOST}:80$1 [L,R=301] au lieu
Merci @Gerben, j'ai essayé ça mais ça donne juste http://example1.com:8080:80/!

OriginalL'auteur JoLoCo | 2012-03-08