
Я использую относительный путь к корню для всех ссылок в PHP-файлах, например «url(/img/myimj.jpg)».
На хост-сервере Godaddy это работает нормально.
Но я хочу запустить его на своем локальном хосте. (Ubuntu 9, Apache 2, PHP 5)
Например, мой сайт хранится в var/www/siteone, другой хранится в var/www/sitetwo,
а корневой каталог установлен на «var/www».
Теперь проблема в том, что href="/" ссылается не на var/www/siteone, а на var/www/.
Есть ли способ определить разные корневые папки документов для разных сайтов?
Я только начинающий веб-разработчик и не уверен, справится ли с этим виртуальный хост.
Может ли кто-нибудь объяснить это?
Спасибо за ваши ответы.
Мне нужно добавить новый виртуальный хост в этот файл /etc/apache2/sites-available/default
Но я все еще не понимаю, как это сделать для localhost? IP и порт по умолчанию всегда 127.0.0.1:80
решение1
Каждый <VirtualHost>
раздел может иметь свою собственную DocumentRoot
директиву.
решение2
Лично я часто использую VirtualDocumentRoot:
http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html#virtualdocumentroot
С помощью этой директивы вы можете сделать, например:
VirtualDocumentRoot /var/www/%-2/%-3/
%-2 — это «второй элемент справа», поэтому это exemple в exemple.com.
%-3 — это третий элемент справа, поэтому это foo в foo.exemple.com.
Затем вам просто нужно создать папки, соответствующие именам ваших хостов:
localhost/ будет:
/var/www/localhost/_/
Обратите внимание на _ там, где нет значения (я всегда создаю символическую ссылку типа _ -> www)
Таким образом,
www.site1.com будет /var/www/site1/www/
www.site2.com будет /var/www/site2/www/
localhost будет /var/www/localhost/_/
тогда развлекайтесь с символическими ссылками :-)