Виртуальный хост Apache

Виртуальный хост Apache

Я собираюсь это сделать

<VirtualHost *>
    ServerName myDomain.com
    DocumentRoot /var/www/myDomain

    <Directory /var/www/myDomain>
         Rewrite on
         RewriteRule ^blog/(.*)$ /var/www/myBlog/$1 [L]
    </Directory>
</VirtualHost>

Так http://www.myDomain.com/blog/будет читать файлы из другого каталога. Вышеуказанное не будет работать, так как я могу сделать это без перемещения файлов?

решение1

Для этого нет необходимости использовать mod_rewrite. Псевдонимлучше подходит.

# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
Alias /blog /var/www/myBlog

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

<Location /blog>
    Allowoverride All
</Location>

решение2

Делай это так:

<VirtualHost *>
  ServerName myDomain.com
  DocumentRoot /var/www/myDomain
  Alias /blog/ /var/www/myBlog/
</VirtualHost>

решение3

LocationТеги — это просто общий контейнер для директив Apache, поэтому используйте его, чтобы «обернуть» все, что вы хотите применить к разделу «внешнего вида» веб-сайта. Очень полезно, если вы извлекаете контент из нескольких физических каталогов в одну большую структуру, вы можете применить один и тот же набор правил ко всем из них, вместо того, чтобы иметь несколько Directoryзаписей

AliasДиректива представляет собой простое перенаправление, отлично подходящее для длинных путей, отображаемых в виде коротких и аккуратных указателей.

DocumentRootДиректива устанавливает верхний каталог веб-контента.

Все они работают с каталогами, но все они немного отличаются. Местоположение в основном для работы с тем, что я бы назвал «веб-представлением» — как это видно снаружи. Каталог для «физического представления» работы с реальными каталогами в файловой системе. Если содержимое одного каталога обслуживается как один URL, то между ними нет функциональной разницы.

Однако, как только вы начинаете «составлять» несколько каталогов, обслуживая их из нескольких URL, которые не обязательно отражают иерархию их файловой системы, вам нужно смешивать и сопоставлять все эти директивы для желаемого эффекта. То, что две директивы могут вести себя одинаково в одной ситуации, не означает, что они будут вести себя так же в другой.

Связанный контент