What I want to do is the following:

My domain xy.example.com no longer exists. Thus I want to do a simple redirect to the new domain abc.example.com. It should be a redirect, that also works when someone types in the browser bar http://xy.example.com/team.php - than it shoul redirect to http://abc.example.com/team.php

I've already tried a few things, but it didn't really work. What do I have to put in the Apache 2 config?

  • 4
    A late comment. if xy.example.com does not exist anymore meaning there is no ip-adress for xy.example.com, nobody will go anywhere when they type that in the browser. The domain must exist before anyone can go there to be redirected. It's like putting a physical answering machine on your old telephone line giving your new number, then disconnecting the line.
    – Lenne
    Jan 7, 2016 at 9:37
  • For ISPConfig redirect, see howtoforge.com/community/threads/… Mar 22, 2019 at 3:12

3 Answers 3


You can use the RedirectPermanent directive to redirect the client to your new URL.

Just create a very simple VirtualHost for the old domain in which you redirect it to the new domain:

<VirtualHost *:80>
    ServerName xy.example.com
    RedirectPermanent / http://abc.example.com/
    # optionally add an AccessLog directive for
    # logging the requests and do some statistics
  • Actually not so simple because you might need to redir both http and https and that becomes two VH. And also you need to add ssl config... So probably easier to use mod_rewrite.
    – Nux
    Apr 1, 2021 at 13:11
  • @Nux That wasn't asked, so it wasn't answered. 🤷
    – joschi
    Apr 2, 2021 at 20:45

Create or edit a .htaccess inside your DocumentRoot. Add

RewriteEngine On
RewriteRule ^(.*)$ http://abc.example.com/$1 [R=301,L]

Additionally I would change the ServerName directive to the new domain and leave a ServerAlias with the old domain.

ServerName abc.example.com
ServerAlias xy.example.com
  • 1
    I cant see how this would work on its own. A RedirectCond !^xy.example.com$ is required to prevent a forwarding loop.
    – GeoSword
    Nov 20, 2018 at 12:00
  • 1
    The ServerAlias solution would not work with HTTPS, if a certificate for abc.example.com is used. Upon connecting to https://xy.example.com the browser would display a certificate error and ask user confirmation to continue. Also it is not a "redirection" to abc.example.com, because the browser location URL would not be changed, but kept as xy.example.com. Dec 13, 2019 at 13:46
  • $1 by default contains the index path /. So we should remove /. abc.example.com$1 Feb 26, 2022 at 21:41

VH is OK if you can do it, but not really a drop-in solution.

I prefer using If:

<If "%{HTTP_HOST} == 'old.example.com'">
    Redirect "/" "https://new.example.com/"

This is something you could use in the same place you define ServerAlias. And should work fine in multi-tenant environment.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.