Apache重定向404仅用于找不到的文件?

时间:2009-08-03 15:34:59

标签: apache redirect http-status-code-404

我要做的是基本上将所有请求发送到目录,如果文件存在,则发送它。如果没有,从父目录发送它(假设它存在)。文件很大,可能会很多,子目录会经常更改,因此文件系统链接不是一种很好的管理方式。是否有一些Apache配置方式这样做? e.g。

/path/file0
/path/file1
/path/sub1/fileA
/path/sub1/fileB
/path/sub1/fileC
/path/sub2/fileA
/path/sub2/fileB
/path/sub2/fileC

因此,如果/path/sub1/fileB的请求进入,则会/path/sub1/fileB(正常情况)。如果/path/sub1/file0收到请求,则会/path/file0(特殊情况)。

或许在PHP中有一种方法,如果我可以让Apache将一个文件夹中的所有请求重定向到一个特定的php文件,该文件检查文件是否存在,如果没有检查'up'文件夹?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用mod_rewrite来执行此操作:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^path/[^/]+/([^/]+)$ path/$1 [L]

此规则会将/path/ foo / bar 的请求重写为/path/ bar 仅当/path/ foo / bar 不是一个普通的文件。

答案 1 :(得分:0)

是的,PHP可以redirect到父目录。