情形二:使用 cgi.force_redirect

配置指令 cgi.force_redirect 可以防止任何人通過如 http://my.host/cgi-bin/php/secretdir/script.php 這樣的 URL 直接調(diào)用 PHP。PHP 在此模式下只會(huì)解析已經(jīng)通過了 web 服務(wù)器的重定向規(guī)則的 URL。

通常 Apache 中的重定向設(shè)置可以通過以下指令完成:

Action php-script /cgi-bin/php
AddHandler php-script .php

此選項(xiàng)只在 Apache 下進(jìn)行過測(cè)試,并且要依賴于 Apache 在重定向操作中所設(shè)置的非標(biāo)準(zhǔn) CGI 環(huán)境變量 REDIRECT_STATUS。如果 web 服務(wù)器不支持任何方式能夠判斷請(qǐng)求是直接的還是重定向的,就不能使用這個(gè)選項(xiàng),而應(yīng)該用其它方法。請(qǐng)看下一節(jié)。