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