2

我创建一个这样的文件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",我该怎么做?

4

1 回答 1

1

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

hhvm.virtual_host[default][check_existence_before_rewrite]= false

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

我建议将所有敏感文件和代码(除了您的 index.php)保留在您的 Web 根目录之外。仅将静态文件放在此文件夹中,当然还有您的 index.php,不要将其他代码放在此处。

于 2017-03-15T18:26:42.230 回答