2017-03-14 68 views
2

我創建這樣example.ini文件:如何忽略使用HHVM proxygen重寫規則的任何文件?

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

如果你希望所有的請求的100%要經過重寫規則補充一點:

hhvm.virtual_host[default][check_existence_before_rewrite]= false 

但是,除非你正在構建的API或一些與100%的動態內容,避免這種情況。靜態內容,如文本,HTML文件,圖像等...應該被允許提供,而不必在您的PHP代碼中進行評估。

我建議保留所有敏感文件和代碼(除ind​​ex.php外)在您的web根目錄之外。只能將靜態文件放在這個文件夾中,當然還有你的index.php文件,不要把其他代碼放在這裏。

+0

在'[conditions] [c] [negate] = false'使用'check_existence_before_rewrite'允許忽略'check_existence_before_rewrite',例如。如果我需要禁用一個唯一的目錄(在我的示例'system /'中,請參閱:https://raw.githubusercontent.com/inphinit/inphinit/master/system/boot/hhvm.ini),如果文件存在並且不在「系統」,然後hhvm再次識別它。再次感謝=)**注意:**'[common]'和'[c]'是「custom」,您可以更改。 –