#apache #redirect #virtualhost
#apache #перенаправление #virtualhost
Вопрос:
Я пытаюсь настроить виртуальный хост (скажем, «subdomain1.domain.com «) на Apache / 2.4.6 (CentOS). У веб-сервера нет имени хоста, допустим, IP-адрес 55.55.55.55, Apache прослушивает порт 80. У меня активирована служба перенаправления, и запросы на «subdomain1.domain.com: 80» перенаправляются наhttp://55.55.55.55 /.
DocumentRoot — это «/ var / www / html» в соответствии с httpd.conf.
Общедоступный контент веб-сайта находится в каталоге с именем «subdomain1», который я размещаю внутри каталога / var / www / html. Код веб-сайта использует некоторый JS / CSS, который должен быть общим с другими виртуальными хостами, которые я хотел бы создать позже, поэтому я помещаю JS / CSS в каталог «библиотеки», расположенный вне корня документа веб-сайта (означает, внутри «/ var / www / html»), и я пытаюсь предоставить им доступ из HTML-кода с помощью «.. / libraries /».
Файл конфигурации виртуального хоста представляет собой «subdomain1.conf», размещенный в каталоге /etc/httpd/conf.d/», это файл:
<VirtualHost *:80>
ServerName subdomain1.domain.com
DocumentRoot /var/www/html/subdomain1
</VirtualHost>
Теперь, с этой конфигурацией, я могу получить доступ к веб-сайту поддомена 1 по адресуhttp://subdomain1.domain.com. Общедоступное содержимое поддомена 1 доступно, но … проблема в том, что Apache не находит все JS / CSS, и все они возвращают ошибку 404. При отладке с помощью веб-браузера я вижу путь, по которому Apache выполняет поиск в библиотеке JS / CSS «http://55.55.55.55/libraries /» и это возвращает 404.
Есть идеи, где я делаю неправильно?
Большое спасибо! Микрофон
Ответ №1:
Вот несколько предложений от меня.
-
Настройка полного доменного имени вашего сервера FQDN
$ nano /etc/hosts
55.55.55.55 subdomain1.domain.com поддомен1
-
Настройка имени хоста вашего сервера
$ nano /etc/hostname
subdomain1.domain.com
-
Включите mod_rewrite на веб-сервере apache
-
Создайте файл .htaccess ниже и сохраните его в папке
/var/www/html/subdomain1/
< IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] < /IfModule>
Спасибо, Афризал