Необходимо было настроить доменное имя в DNS, например, companyname.co.uk. wiki.servername.co.uk
пропустил бы Ваши внутренние серверы и искал бы co.uk
TLD для a servername
домен, который, очевидно, не существует.
Если Вы просто желаете, чтобы внутренние клиенты получили доступ к нему, можно настроить поддельное доменное имя внутренне как company.lan
. Затем добавьте его как область поиска для Ваших внутренних клиентов в их настройках TCP/IP.
Далее, на IIS, необходимо настроить новый веб-сайт (помимо значения по умолчанию) для хостинга субдомена. Назовите веб-сайт wiki.servername.company.lan
, или независимо от того, что Вы требуете.
Альтернатива всему вышеупомянутому, можно просто использовать уникальные имена для веб-сайта, не обращаясь к субдоменам. Например, с тех пор http://servername
уже работы, Вы могли настроить новый веб-сайт в IIS, который ответит на http://anothername
. Пока anothername
находится в Вашем внутреннем DNS, указывающем на тот же IP.
Править: Я хотел дать пример того, что я имею в виду. В моей сети у нас есть доменное имя company.org.
Для внутреннего контроля мы настроили два названные веб-сайта itadmin
и itwiki
на названном сервере intapps
. Для доступа к одному из этих веб-сайтов пользователи вводят также http://itadmin.company.org
или просто http://itadmin
. Внутренние точки сервера DNS itadmin
и itwiki
к тому же IP, который является IP для intapps
. Записи зарегистрированы под company.org
зона в DNS.
Спасибо за подсказку для mod_filter. Вроде работает сейчас! У меня была проблема с тем, что сайт использует оба URL с www. и тот без. Моя конфигурация:
<VirtualHost *:801>
ServerName www.dev.domain1.com
ServerAdmin office@domain2.com
SetEnvIf X-Forwarded-Proto https HTTPS=on
FilterProvider gzinflate INFLATE resp=Content-Encoding $gzip
FilterProvider replace SUBSTITUTE Content-Type $text/
FilterProvider gzdeflate DEFLATE Content-Type $text/
FilterChain +gzinflate +replace +gzdeflate
Substitute "s|domain2.com|dev.domain1.com|n"
ProxyPass / http://www.domain2.com/
ProxyPassReverse / http://www.domain2.com/
# ProxyHTMLEnable On
ProxyHTMLURLMap http://www.domain2.com/ /
ErrorLog /var/log/apache2/dev-proxy-error.log
LogLevel warn
CustomLog /var/log/apache2/dev-proxy-access.log combined
</VirtualHost>
И для домена без www
<VirtualHost *:801>
ServerName dev.domain1.com
ServerAdmin office@domain2.com
SetEnvIf X-Forwarded-Proto https HTTPS=on
FilterProvider gzinflate INFLATE resp=Content-Encoding $gzip
FilterProvider replace SUBSTITUTE Content-Type $text/
FilterProvider gzdeflate DEFLATE Content-Type $text/
FilterChain +gzinflate +replace +gzdeflate
Substitute "s|domain2.com|dev.domain1.com|n"
ProxyPass / http://domain2.com/
ProxyPassReverse / http://domain2.com/
# ProxyHTMLEnable On
ProxyHTMLURLMap http://domain2.com/ /
ErrorLog /var/log/apache2/dev-proxy-error.log
LogLevel warn
CustomLog /var/log/apache2/def-proxy-access.log combined
</VirtualHost>
Одного ProxyHTMLURLMap недостаточно, потому что он заменяет только тот же самый домен. в домене с www домен без него не будет заменен, и наоборот.
Надеюсь, это кому-то поможет. Однако с этим широким фильтром я настоятельно рекомендую не использовать его на производственном сайте!
Я не совсем понимаю, что вы хотите точно, и моя репутация слишком мала для того, чтобы добавить комментарий.
Верно, у вас такая ситуация:
yourCMS.local
|
|
+ -----------> Создайте копию System = dev.yourCMS.local
На вашем "скопированном" сервере веб-сервера возникла такая ситуация:
Пользователь добавляет "dev.yourCMS.local" "в браузере и на вашем сервере разработки перенаправляют соединение на url yourCMS.local, но на том же сервере (поиск 127.0.0.1)
Если я правильно понимаю, попробуйте следующее решение:
Добавьте запись в хост файл (ubuntu / etc / hosts)
#
127.0.0.1 yourCMS.local
измените файл конфигурации сайта apache в / etc / apache2 / sites-available / yoursite и добавьте:
<Прокси *>
Заказать отказать, разрешить
Разрешить от всех
ProxyPass / http: //yourCMS.local
ProxyPassReverse / http: //yourCMS.local
Перезапустить apache
Попробовать
Открыт для других решений и комментариев.