0

我的原始服务器上有数百个 jpg 的http://example.com/pic1.jpg、 pic2.jpg、 pic3.jpg 等,但我需要将其移动到 http://example.com/图片/图片[##].jpg。许多不同的服务器和页面链接到这些图片,所以如果可能的话,我不想只是移动图片和更改链接。是否可以在 Apache 中包含另一个目录作为第二个文档根目录?

所以,即使图片实际上位于 /pictures/pic1.jpg,链接到 /pic1.jpg 也可以正常工作吗?

编辑:我不想符号链接,因为根目录中有这么多图片会造成混乱。

4

2 回答 2

2

当根目录中没有具有该名称的文件时,您可以使用根目录中的 .htaccess 文件将所有请求重定向到图片目录。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /pictures/$1 [L]

关于主要问题。不,不可能有两个文档根(从逻辑角度来看也不可接受)。但是您可以使用 .htaccess 文件重定向请求。

于 2013-01-30T20:31:19.480 回答
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 时这样做,但它现在对我有用。

于 2013-01-31T04:19:23.960 回答