Использование механизма перезаписи для маршрутизации доменов по путям на одном DocumentRoot

У меня два домена:

domain1.com
domain2.com

У меня один сервер Apache 2 с корнем документа / svr .

Я хочу, чтобы произошло следующее:

  • domain1.com направляет к эквиваленту / svr / examplepath / thisisadir / param / domain1
  • domain2.com маршрутизирует к эквивалент / svr / examplepath / thisisadir / param / domain2

Я пробовал использовать .htaccess с RewriteEngine в / svr, , используя объявления VirtualHost на сайтах-доступных для каждого имени хоста и просто используя 301 редирект. Однако я не могу использовать простой 301, так как пользователь все равно должен видеть domain1.com в своем браузере.

Т.е. domain1.com/about-this-site должен соответствовать / svr / examplepath / thisisadir / param / domain1 / about-this-site.

Я не могу заставить RewriteEngine маршрутизировать имена хостов для соответствующих конечных точек, любой совет будет очень признателен. В настоящее время я пытаюсь использовать HTTP_HOST в .htaccess в корне сервера, но правила перезаписи все еще не вступают в силу.

Ilmiont

0
задан 11 September 2016 в 23:22
1 ответ

Прекратить использование .htaccess и RewriteEngine, и вместо этого посмотрите на директиву apache под названием "VirtualHost":

http://httpd.apache.org/docs/current/vhosts/name-based.html

Это проблема, которую они решают. Apache сопоставит входящий заголовок Host: директивам ServerName в блоках VirtualHost и применит конфигурацию из сопоставления VirtualHost. Каждый VirtualHost может иметь свой собственный DocumentRoot.

Ниже может быть скелет решения:

 <VirtualHost *:80>
   ServerName domain1.com
   DocumentRoot /svr/examplepath/thisisadir/param/domain1
   # other configuration here
 </VirtualHost>
 <VirtualHost *:80>
   ServerName domain2.com
   DocumentRoot /svr/examplepath/thisisadir/param/domain2
   # other configuration here
 </VirtualHost>
3
ответ дан 4 December 2019 в 12:22

Теги

Похожие вопросы