我通过互联网搜索了一些我似乎不理解的标志。
您何时使用[E]标志?
例如。
RewriteRule \.jpg$ - [env=dontlog:1]
那是做什么的??
NS(没有后续请求)如何工作?如果我在我的php文件中有很多包含,我是否需要将其置于NS以便它不会阻止它工作?它有用吗?
答案 0 :(得分:2)
当该规则匹配(\.jpg%
)时,环境变量dontlog
的值设置为1
。
稍后,最有可能使用它的方案是Apache配置定义了一个CustomLog
指令,该指令读取该环境变量,并且在设置时不会在日志文件中写入一行。因此,.jpg
图像文件的请求不会写入Apache日志。
例如:
# Log any request that doesn't have a dontlog variable set...
CustomLog logs/access_log common env=!dontlog
有一些关于环境变量in the mod_rewrite documentation
的信息直接来自上述文件:
如果请求的URI是图像文件,则以下示例将名为“image”的环境变量设置为值“1”。然后,该环境变量用于从访问日志中排除这些请求。
RewriteRule \.(png|gif|jpg) - [E=image:1]
CustomLog logs/access_log combined env=!image
答案 1 :(得分:0)
要回答有关重写无效原因的问题,这是因为您的第一条规则会将请求从index.php重写为target.php,因此第二条规则永远不会触发,因为请求的文件不再是索引。 PHP。
评论已经为您提供了环境变量标志的答案。