我在原始服务器上有数百个jpg的http://example.com/pic1.jpg,pic2.jpg,pic3.jpg等等,但是我需要将它移到http://example.com/pictures/pic [##]。JPG。许多不同的服务器和页面链接到这些图片,所以如果可能的话,我不想只是移动图片并更改链接。是否可以在Apache中包含另一个目录作为第二个文档根?
所以,即使图片实际位于/pictures/pic1.jpg,链接到/pic1.jpg也可以正常工作?
编辑:我不想进行符号链接,因为在根目录中有这么多图片的混乱。
答案 0 :(得分:2)
当根目录中没有该文件名的文件时,您可以使用根目录中的.htaccess文件将所有请求重定向到图片目录。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /pictures/$1 [L]
关于主要问题。不,不可能有两个文档根(从逻辑的角度来看也不可接受)。但您可以使用.htaccess文件重定向请求。
答案 1 :(得分:0)
在我的httpd.conf文件中,对于文档根目录,我现在有以下块:
<Directory />
Options FollowSymLinks
AllowOverride None
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+) http://example.com/pictures%{REQUEST_URI}
</Directory>
因此,如果您尝试转到http://example.com/pic1.jpg但它不存在,则会将您重定向到http://example.com/pictures/pic1.jpg。这可以做得更好,就像REQUEST_URL包含.jpg时一样,但它现在适用于我。