apache mod rewrite - 如何确定磁盘上的哪个文件正在被访问?

apache mod rewrite - 如何确定磁盘上的哪个文件正在被访问?

我新近正在开展的一个项目已经存在多年,并且它已经RewriteRule在 Apache conf 文件中积累了几百个相当复杂的内容。

在处理某些文件时,我能够找出哪些规则会影响它们。然而,在其他情况下,我完全无法弄清楚。到目前为止,我的方法是手动查看各种 conf 文件,并grep查找某些关键字。

有一个更好的方法吗?

我能想到的一些事情是:

  • 是否存在一个命令或 REPL,我可以在其中输入路径,然后它会返回它所服务的文件的名称?
  • 是否有一个工具可以让你完成上述操作,同时突出显示 conf 文件中的哪些行重写了该规则?
  • 有没有办法检查日志文件来确定输入路径和相应的文件服务路径?

...但我不知道从哪里开始。

答案1

请启用重写日志Paul 上面提到的指令。然后设置重写日志级别指令2.

之后,开始将 RewrireLogLevel 的值增加到 9,直到您看到记录到日志文件中的必要详细信息。

答案2

同意以上内容,要启用重写日志,只需添加

RewriteLog <file-path>
RewriteLogLevel 2

到你的虚拟主机文件,然后重新启动 apache

可以找到 mod rewrite 的 man 文件这里

相关内容