将TestString视为路径名,并测试它是否存在,并且是一个常规文件。
因此,我有以下重写规则
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond /efs/my-project/angular-json/$1/$2.json -f
RewriteRule ^/(test-folder)/(california)$ http://noderender:8080/$1/$2?mode=client [P,QSA,E=CACHE_CHECK:]以及文件的统计信息
$ stat /efs/my-project/angular-json/test-folder/california.json
File: /efs/my-project/angular-json/test-folder/california.json
Size: 1689 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 5373962 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ choz) Gid: ( 33/ www-data)
Access: 2019-07-25 00:00:20.811760100 +0800
Modify: 2019-07-23 21:43:48.177173780 +0800
Change: 2019-07-23 21:43:48.177173780 +0800
Birth: -这是它的日志,
applying pattern '^/(test-folder)/(california)$' to uri '/test-folder/california'
RewriteCond: input='/var/www/my-project/test-folder/california' pattern='!-f' => matched
RewriteCond: input='/var/www/my-project/test-folder/california' pattern='!-d' => matched
RewriteCond: input='/efs/my-project/angular-json/test-folder/california.json' pattern='-f' => not-matched问题是,为什么不匹配-f?是否有任何httpd配置丢失并导致了这种情况?
发布于 2019-07-25 15:41:47
帮助那些面临同样问题的人。在我的例子中,/efs是来自另一个磁盘的挂载路径。卸载它,并从apache解决此问题的同一磁盘服务/efs。
所以,在我的/etc/fstab中
# Commented this line
# /dev/disk/by-uuid/741805d1-d67a-4936-8b93-c3d223351615 /efs auto nosuid,nodev,nofail,x-gvfs-show 0 0我没有进一步挖掘,但我的结论是apache (www-data)无法从另一个磁盘读取文件?真奇怪。
https://stackoverflow.com/questions/57204878
复制相似问题