假设我提出请求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]