Как вы говорите, с hosts
вы можете контролировать только IP, но поскольку новый URL является еще одним поддоменом, мы можем комбинировать использование hosts
с локальным веб-сервером для перезаписи URL. Обратите внимание, что этот обходной путь требует, чтобы приложение использовало браузер или другой компонент, который следит за перенаправлением URL.
Я собираюсь использовать ванильную установку Apache, поскольку нам не нужен PHP или БД, но если вы хотите, вы можете использовать дистрибутив, такой как XAMPP. Шаги:
Скачайте Apache ZIP от Apachehaus, я использовал 32-битную версию VC11. Обратите внимание, что для этой версии требуется распространяемый Visual C++ 2012, скачайте и установите его, если он еще не установлен (если вы используете другую версию, вам потребуется соответствующая версия распространяемого C++).
Извлеките содержимое в ZIP в папке, я собираюсь использовать C:\Apache
но вы можете использовать другую папку, просто используйте эту папку на следующих шагах.
Перейдите в C:\Apache\Apache24\conf
и откройте httpd.conf
в текстовом редакторе и внесите следующие изменения:
- Найдите «
Define SRVROOT "/Apache24"
и замените его на Define SRVROOT "C:\Apache\Apache24"
, это сообщит Apache, где он установлен.
- Найдите
#LoadModule rewrite_module modules/mod_rewrite.so
и удалите начальный #
, при этом загружается модуль перезаписи URL.
- Найдите
DocumentRoot "${SRVROOT}/htdocs"
через несколько строк после того, как вы увидите AllowOverride None
, замените его на AllowOverride All
, это позволит перезаписать URL.
Вы можете запустить Apache вручную, перейдя в C:\Apache\Apache24\bin
и httpd.exe
, но его удобнее установить как сервис. Для этого откройте cmd.exe
, перейдите в эту папку и выполните httpd.exe -k install
. После установки службы вы можете запустить / остановить ее с помощью инструмента администрирования «Службы» на панели управления (ее необходимо запустить в первый раз после установки, затем она будет автоматически запущена в Windows).
Проверьте, что сервер работает, откройте http://localhost
, он покажет страницу приветствия, если работает правильно. Если сервер не запускает запуск вручную из командной строки, он выведет сообщение об ошибке, препятствующее его запуску (например, если вы указали неверный путь в ServerRoot).
Создайте новый файл в своем текстовом редакторе и сохраните его как .htaccess
(обратите внимание на начальную точку) в папке C:\Apache\Apache24\htdocs
, в этот файл необходимо поместить следующее (измените домен и подпапку на настоящую из них):
RewriteEngine on
RewriteRule ^sub1/sub2/sub3/(.*)$ http://subdomain2.domain.com/sub4/$1 [R]
Наконец, отредактируйте файл hosts
Windows и добавьте следующую строку:
127.0.0.1 subdomain1.domain.com
Вы можете проверить, работает ли перенаправление из браузера, если все прошло нормально, теперь, когда вы набираете http://subdomain1.domain.com/sub1/sub2/sub3/[anything], браузер будет перенаправлен на http://subdomain2 .domain.com/sub4/[что угодно].
Если вы хотите использовать этот обходной путь на нескольких компьютерах, вам не нужно устанавливать Apache на каждом из них. Предположим, что 192.168.0.10
- это IP-адрес компьютера с Apache, просто добавьте в файл hosts
каждого компьютера:
192.168.0.10 subdomain1.domain.com
Обратите внимание, что вам нужно разрешить соединения с Apache в брандмауэре, по крайней мере, с локальной сетью.