Назад | Перейти на главную страницу

Виртуальный хост 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/ будет читать файлы из другого каталога. Вышеуказанное не будет работать, как я могу сделать это, не перемещая файлы?

Для этого не нужен пользователь 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>

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

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

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

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

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

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

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