首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mod重写-文件属性"-f“测试失败,即使存在常规文件

Mod重写-文件属性"-f“测试失败,即使存在常规文件
EN

Stack Overflow用户
提问于 2019-07-25 14:53:35
回答 1查看 52关注 0票数 0

根据国防部重写关于-f的文档

将TestString视为路径名,并测试它是否存在,并且是一个常规文件。

因此,我有以下重写规则

代码语言:javascript
复制
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:]

以及文件的统计信息

代码语言:javascript
复制
$ 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: -

这是它的日志,

代码语言:javascript
复制
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配置丢失并导致了这种情况?

EN

回答 1

Stack Overflow用户

发布于 2019-07-25 15:41:47

帮助那些面临同样问题的人。在我的例子中,/efs是来自另一个磁盘的挂载路径。卸载它,并从apache解决此问题的同一磁盘服务/efs

所以,在我的/etc/fstab

代码语言:javascript
复制
# 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)无法从另一个磁盘读取文件?真奇怪。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57204878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档