2016-03-19 3 views
0

Я хотел бы запустить 2 сайта на одном сервере Apache, но без фиксированных доменов, поэтому в основном хочу, чтобы что-либо поступало на любом URL-адресе со словом «site2» для перенаправления в папку/site2. .. напримерПереадресация Apache на основе частичного URL-адреса

http://wordssite2.blah.com -> /var/www/html/site2/index.html http://wordssite2.blah2.com/index.html -> /var/www/html/site2/index.html http://wordssite2.foo.com/gallery.html -> /var/www/html/site2/gallery.html http://wordssite1.blah.com/gallery.html -> /var/www/html/gallery.html

Я новичок в апач, и не знаю, стоит ли это сделать с помощью правила переадресации, или с помощью VirtualHosts. Кажется, что перенаправление поддерживает подстановочные знаки, VirtualHosts, похоже, хочет иметь фиксированное доменное имя.

ответ

0

Следующая конфигурация должна быть помещена в файл ВХост для доменов, содержащих «site2»:

<VirtualHost *:80> 

     DocumentRoot /var/www/html/site2/ 
     ServerAlias *site2* 

     RewriteEngine On 
     RewriteCond %{HTTP_HOST} "site2" 
     RewriteRule ^(.*)$ $1 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 

директива ServerAlias используется, чтобы сообщить апача для обработки запросов, которые содержат слово «site2» и применить это конкретную конфигурацию vhost.

Директива RewriteCond проверит, содержит ли доменное имя входящего запроса «site2». Переменная сервера HTTP_HOST возвращает доменное имя, полученное в заголовке HTTP-запроса.

Если это верно, то RewriteRule будет обслуживать запрос от «//HTML// WWW вара site2» папки (упоминается в DocumentRoot Директиве) и добавьте URI, который извлекается параметром $1.

Примечание:

  1. Вы должны сначала включить mod_rewrite на Apache для этой конфигурации для работы.

  2. Вы должны настроить правильные записи DNS для доменов «site2» и направлять трафик на ваш сервер.

Смежные вопросы