如果不存在则文件的替代目录

如果不存在则文件的替代目录

假设我提出请求http://www.mysite.com/files/picture.jpg所以我的 picture.jpg 应该在 htdocs/files/picture.jpg

如果 picture.jpg 在 htdocs/files 中不存在,我该如何配置,然后在 htdocs/files/alt 中查找它?

文件名各不相同,但备用目录名称 (alt) 是固定的(位于原始目录内)

使用 apache 配置可以实现吗?

答案1

您应该使用名为mod_rewrite为了达成这个。 http://httpd.apache.org/docs/current/en/rewrite/

Apache 的mod_rewrite模块提供了一种基于正则表达式规则动态修改传入的 URL 请求的方法。

指令RewriteCond来自mod_rewrite具有-f允许您测试文件是否存在的标志。

要启用此模块,您只需运行以下命令并重新启动 Apache:

# a2enmod rewrite
# service apache2 restart

然后,您必须在 VHost 配置文件中定义重写规则。重写规则将如下所示:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^/files/(.+)$ /files/alt/$1 [L]

相关内容