gpt4 book ai didi

apache - RewriteCond -d .htaccess 失败但目录存在

转载 作者:行者123 更新时间:2023-12-02 03:37:57 25 4
gpt4 key购买 nike

如果覆盖存在并且覆盖目录存在于 RHEL5 上运行的 Apache 2.2 .htaccess 文件中,我正在尝试有条件地重写 URI 的目录路径。

我通过有条件地将环境变量设置为目录来执行此操作,然后我检查是否设置了环境变量以及目录是否存在。这是针对 Drupal 站点的,但不确定是否重要。

RewriteCond %{HTTP_HOST}                      qa-public.sample.com
RewriteRule ^ - [ENV=publicFiles:sites/qa-public.sample.com/files]
...
RewriteCond %{ENV:publicFiles} !^$
RewriteCond %{ENV:publicFiles} -d
RewriteRule ^sites/default/files(/.*)$ %{ENV:publicFiles}$1 [PT]

我打开了重写日志记录到 7 级。

10.20.67.192 - - [27/Feb/2014:13:16:34 --0500] [qa-public.sample.com/sid#7f631331ecd8][rid#7f631360e568/initial] (4) [perdir /var/www/qa-public/] RewriteCond: input='sites/qa-public.sample.com' pattern='!^$' => matched
10.20.67.192 - - [27/Feb/2014:13:16:34 --0500] [qa-public.sample.com/sid#7f631331ecd8][rid#7f631360e568/initial] (4) [perdir /var/www/qa-public/] RewriteCond: input='sites/qa-public.sample.com' pattern='-d' => not-matched

我使用 perdirinput 的输出来验证它是否存在。它是指向目录的符号链接(symbolic link)。

$ ls -l /var/www/qa-public/sites/qa-public.sample.com/files
lrwxrwxrwx 1 XXXXXX YYYYYY 27 Feb 13 14:20 /var/www/qa-public/sites/qa-public.sample.com/files -> /usr/local/files-qa/

我也试过 -l-x。我也尝试过其他非链接目录。

我尝试在 RewriteCond 中的目录之前和/或之后添加一个 /

我可以删除 -d 条件,Apache 将为该文件提供服务。

谢谢,韦斯。

最佳答案

试试这个条件:

RewriteCond %{DOCUMENT_ROOT}/%{ENV:publicFiles} -d

关于apache - RewriteCond -d .htaccess 失败但目录存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com