Перенаправление доменов третьего уровня и второго уровня в каталоги на локальном хосте - PullRequest
0 голосов
/ 26 августа 2011

С помощью прокси-сервера Acrylic DNS настройте мой localhost таким образом, чтобы любой адрес с доменом верхнего уровня "l" (example.l) перенаправлялся на localhost.Но я хотел бы открыть определенную папку на основе домена второго уровня (example.l -> localhost / example). Я думаю, что решение может быть в файле htaccess, который будет находиться в корневом каталоге (C: \ wamp \ www \ в моем случае).

Я нашел некоторый код для поддоменов и немного изменил его, чтобы он работал в моем случае:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.l
RewriteCond %{HTTP_HOST} ^([^.]+)\.l
RewriteRule ^$ /$1 [L]

Он работает для домена второго уровня, но не прозрачно (example.l становитсяexample.l / example) и домены третьего уровня игнорируются (но я думаю, что это можно исправить с помощью другого файла htaccess в целевой директории).Я полный нуб в регулярных выражениях, поэтому я не могу заставить его работать должным образом.

Есть идеи?

Кстати, если я добавлю домен в файл vshost, он будет работать нормально, но уклонение от необходимости делать это для каждого домена - это как раз то, чего я пытаюсь достичь ...

1 Ответ

1 голос
/ 26 августа 2011

То, что вы хотите сделать, это использовать Именованные виртуальные хосты , а не mod_rewrite.

Это немного сложная проблема, поскольку она зависит от конфигурации вашей системы.ОС и версия Apache, которую вы используете.

В целом, однако, в основном требуется включить именованные виртуальные хосты в вашем http.conf, а затем добавить конкретные конфигурации, которые указывают на разные каталоги для каждого хоста, что выглядитнапример:

# Enabled Named Virtual Hosts
NameVirtualHost *:80

# Set up one host
<VirtualHost *:80>
    ServerName example.l
    ServerAlias *.example.l
    DocumentRoot "C:/wamp/www/example"
</VirtualHost>

# Add another
<VirtualHost *:80>
    ServerName other.l
    DocumentRoot "C:/wamp/www/other"
</VirtualHost>

В производственной системе, такой как система, работающая в операционной системе Linux, обычно для каждого домена требуется отдельный .conf, чтобы упростить его.

Edit: я не пользователь Windows, поэтому я не на 100% в правильном формате разделителя каталогов.Я изменил его, чтобы соответствовать примерам, которые я нашел в Интернете.

...