即使目录不存在,也将完整文件路径传递给php

时间:2016-03-01 14:32:45

标签: .htaccess

我在dir1中有这个htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ missingFileHandler.php?location=%{REQUEST_FILENAME} [L]

当我访问时:

http://example.com/dir1/dir2/dir3/file.txt

$ _GET ['location']的值很好:

/path-to-www/dir1/dir2/dir3/file.txt

但是如果某些dir1,dir2或dir3不存在,我就不会得到完整路径,例如:访问时:

http://example.com/dir1/missingdir2/dir3/file.txt

$ _GET ['location']的值缺少其余部分:

/path-to-www/dir1/missingdir2

如何在两种情况下获得完整路径?

Note:

它不需要是完整的服务器路径或完整的URL。 我真正感兴趣的是这部分:dir1/dir2/dir3/file.txt

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ missingFileHandler.php?location=$1 [L]