Субдомен на локальном хосте - PullRequest
4 голосов
/ 07 сентября 2011

Я хотел бы создать регистрационную форму, которая создает субдомены (пока на локальном хосте), но у меня есть некоторые проблемы. Я знаю, как создавать субдомены, например, записав их в vhosts:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.hleclerc-PC.ingenidev
    DocumentRoot "C:/wamp/www/something/"
    ServerName localhost
    ServerAlias something.localhost
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
</VirtualHost>

И поместите эту строку в хосты:

127.0.0.0              something.localhost

Это работает, но я хочу, чтобы, когда я регистрирую новый поддомен (например: other), то когда я пытаюсь открыть other.localhost, он открывает указанную папку (../www/other/) , Я пробовал это в vhosts с «ServerName * .localhost», «ServerName localhost», «ServerAlias ​​* .localhost», «ServerAlias ​​localhost» и в хостах «127.0.0.1 * .localhost» со всеми этими перестановками, но ни один из них не работал для меня. Я думал об этом, что при регистрации я поставил новый блок в vhosts с оптимальными данными, но я не думаю, что это очень безопасно / выполнимо / или лучший способ сделать.

Надеюсь, кто-нибудь может мне помочь!

Заранее спасибо!

Ответы [ 5 ]

27 голосов
/ 23 сентября 2012

http://*.lvh.me/ - псевдоним localhost.Идеально подходит для тестирования поддоменов.

$ host lvh.me
lvh.me has address 127.0.0.1
$ host foo.lvh.me
foo.lvh.me has address 127.0.0.1

Редактировать: 2016/07: lvho.st ушел, поменялся рабочим доменом

9 голосов
/ 26 сентября 2012

lvh.me также является псевдонимом localhost.Идеально подходит для тестирования поддоменов, например, Jamo для lvho.st .

2 голосов
/ 07 сентября 2011

попробуйте добавить другой домен в serveralias:

ServerAlias something.localhost other.localhost
2 голосов
/ 07 сентября 2011

Вы можете попробовать переписать файл, который преобразует поддомен в папку.

Например, mystuff.localhost становится localhost / mystuff

otherthing.localhost/some/dir/here становится localhost/otherthing/some/dir/here

0 голосов
/ 09 сентября 2013

Вы должны создать динамически настроенный виртуальный хостинг .

Это позволяет вам определить одну запись виртуального хоста для обработки всех входящих запросов для разных хостов и делегировать каждый запрос в соответствующий каталог.

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

Сначала вы включаете расширение mod_vhost_alias:

sudo a2enmod vhost_alias

Затем настройте одну запись виртуального хоста следующим образом:

# get the server name from the Host: header
UseCanonicalName Off

# this log format can be split per-virtual-host based on the first field
# this makes it easy to grep
LogFormat "%V %h %l %u %t \"%r\" %s %b" combined

<VirtualHost *:80>

    # the %0 is replaced by the host name on each request
    # if you want to use only part of the domain as directory
    # you would have to change the %0 for a %1 or %2 depending
    # on which part of the domain you want to take.
    VirtualDocumentRoot /your-main-directory/%0

    # configure your main directory anyway you want it
    <Directory /your-main-directory>
        Options Indexes FollowSymLinks -MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    #I have a single cgi-bin directory, but there is also a VirtualScriptAlias
    # available in case you need it.
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
...