是否可以设置Apache来从同一个URL提供多个目录?
例如,假设我有两个位置的映像:/ mnt / imagestore1,/ mnt / imagestore2。 我想mysite.com/images/file.jpg显示从任一目录的图像。
它似乎不像以下这样的别名:
Alias /images /mnt/imagestore1 Alias /images /mnt/imagestore2
而在文档根目录下使用mod_rewrite和.htaccess也没有起作用,尽pipe我对mod_rewrite的理解可能不在这里:
RewriteCond /mnt/imagestore1/%{REQUEST_URI} -f RewriteRule ^(.+) /mnt/imagestore1/$1 [L] RewriteCond /mnt/imagestore2/%{REQUEST_URI} -f RewriteRule ^(.+) /mnt/imagestore2/$1 [L]
我有这个工作通过mod_rewrite。 我直接更新了虚拟主机configuration,而不是使用.htaccess文件。 我相信它可以通过.htaccess工作,但我的重写规则是有点(注意丢失/)。 还需要为图像目录添加目录声明。
虚拟主机看起来如下:
DocumentRoot /var/www/html <Directory /var/www/html> Order allow,deny Allow from all </Directory> RewriteEngine on RewriteCond "/mnt/imagestore1%{REQUEST_URI}" -f [OR] RewriteCond "/mnt/imagestore1%{REQUEST_URI}" -d RewriteRule ^/?(.*)$ /mnt/imagestore1/$1 [L] RewriteCond "/mnt/imagestore2%{REQUEST_URI}" -f [OR] RewriteCond "/mnt/imagestore2%{REQUEST_URI}" -d RewriteRule ^/?(.*)$ /mnt/imagestore1/$1 [L] <Directory /mnt/imagestore1> Order allow,deny Allow from all </Directory> <Directory /mnt/imagestore2> Order allow,deny Allow from all </Directory>
别名不会那样工作。 第一场比赛将由阿帕奇考虑,第二场被忽略。 看这里:
https://httpd.apache.org/docs/2.4/mod/mod_alias.html
..别名和redirect按照它们在configuration文件中出现的顺序处理,第一个匹配优先。
并回答你的问题:这是出于同样的原因,不可能从同一个url提供多个目录。