如何使用HHVM proxygen重写规则忽略任何文件?

时间:2017-03-14 23:02:35

标签: php hhvm proxygen

我创建了一个像example.ini这样的文件:

hhvm.server.type = proxygen

hhvm.server.default_document = index.php

hhvm.virtual_host[default][rewrite_rules][common][pattern] = "(.*)"
hhvm.virtual_host[default][rewrite_rules][common][to] = "index.php/$1"
hhvm.virtual_host[default][rewrite_rules][common][qsa] = true

在终端呼叫:

$ hhvm -m server -p 9000 -d hhvm.server.source_root=/home/user/project -c example.ini

它的工作正常,但是我仍然可以浏览与项目位于同一文件夹中的现有文件,但我想要的是所有请求都应该发送到" index。 php" ,我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果您希望100%的所有请求都通过重写规则,请添加以下内容:

hhvm.virtual_host[default][check_existence_before_rewrite]= false

但是,除非您正在构建API或具有100%动态内容的内容,否则请避免这种情况。应该允许提供静态内容,如文本,html文件,图像等,而无需在PHP代码中进行评估。

我建议将所有敏感文件和代码(index.php除外)保留在Web根目录之外。只放置像这个文件夹中的静态文件,当然还有你的index.php,不要把其他代码放在这里。