Я собираюсь сделать это
<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-адресов, которые необязательно отражают иерархию их файловой системы, вам необходимо смешать и сопоставить все эти директивы для достижения желаемого эффекта. То, что две директивы могут вести себя одинаково в одной ситуации, не означает, что они будут вести себя одинаково в другой.