Это моя конфигурация apache (самая интересная его часть):
<VirtualHost *:80>
ServerName example.com
...
</VirtualHost>
Работает нормально, и мой сервер правильно реагирует на example.com:80
HTTP-запросы. Теперь я добавлю этому домену псевдоним. Я хочу, чтобы все запросы my-new-domain.com:80/test
давать те же ответы, что и на example.com
, например:
my-new-domain.com/test/xyz -> example.com/xyz
Что важно, я не хочу видеть перенаправления HTTP (код 301). Я хочу спрятаться example.com
URL от пользователя. Все, что ему нужно увидеть, это my-new-domain.com/test
URL.
ставить
ServerAlias my-new-domain.com
внутри раздела VirtualHost
для переписывания
RewriteCond %{HTTP_HOST} ^my-new-domain\.com
RewriteRule /test/(.*) /$1 [QSA,L,P]
Используйте mod_rewrite с mod_proxy (https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html). В противном случае, если домены различаются, mod_rewrite выполняет внешнюю перезапись, даже если оба обслуживаются с одного и того же хоста.
Что-то вроде
RewriteRule ^http://my-new-domain.com/test http://example.com [QSA, P]
Другое решение - создать символическую ссылку test
в корневом каталоге my-new-domain.com в корневой каталог example.com.