127.0.0.1 developmentsite.com
127.0.0.1 blockeddomain1.com
127.0.0.1 blockeddomain2.com
Я хотел бы заблокировать 2 последних домена (и еще несколько). Для этого я добавил следующую запись vhost:
<VirtualHost *:80>
DocumentRoot "/sites/blocked"
<Directory /sites/blocked>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Это нормально работает. Но теперь я хочу, чтобы первый домен был перенаправлен на обслуживаемый мной сайт (работающий на XAMPP). Это работает для маршрутизации ВСЕХ доменов на мой сайт разработчика:
<VirtualHost *:80>
DocumentRoot "/sites/developmentsite.com"
ServerName developmentsite.com
ServerAlias developmentsite.com
<Directory /sites/developmentsite.com>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog "/sites/logs/developmentsite.com/error_log"
CustomLog "/sites/logs/developmentsite.com/access_log" common
</VirtualHost>
Но я хочу отправить просто на сайте development.com. Я пробовал разные порты и ips, но думаю, что просто не понимаю чего-то базового.
Извините за такой простой вопрос. Спасибо!
Я думаю, вам нужно еще раз взглянуть на конфигурации виртуального хоста. Вопрос не имеет смысла. Как
<VirtualHost *:80>
DocumentRoot "/sites/blocked"
<Directory /sites/blocked>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
разрешает Developmentite.com и блокирует другие сайты, не ясно, когда ничего о том, что разрешать и что блокировать, не упоминается в конфигурации. Посмотри на http://www.sbarjatiya.com/notes_wiki/index.php/Apache_virtualhost_configuration_for_hosting_multiple_domains изучить основы виртуального хостинга Apache. Затем используйте
Order deny,allow
deny from all
для запрета доменов, к которым вы не хотите получать доступ.
Затем используйте ProxyPass для пересылки запросов одного локального сайта на другой сервер и т. Д.
Я думаю, что ваш "блокирующий" VirtualHost работает только так, как вы надеетесь, из-за поведения Apache по умолчанию; если он не может найти VirtualHost с ServerName
/ServerAlias
совпадая с запросом, он будет использовать VirtualHost по умолчанию (который, если он не выбран явно, является первым, который он анализирует).
Вы должны поместить сайты, которые вы хотите явно заблокировать, в свой «блокирующий» VirtualHost, например:
<VirtualHost *:80>
# Add these lines so Apache knows explicitly what to route here:
ServerName blocking.localhost
ServerAlias blockeddomain1.com *.blockeddomain1.com
ServerAlias blockeddomain2.com *.blockeddomain2.com
# Everything else
DocumentRoot "/sites/blocked"
<Directory /sites/blocked>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>