0
所以最近我按照Google的AJAX抓取方法重建了我的網站。escaped_fragment請求不解析PHP?
一切工作正常和?_escaped_fragment_=
請求,工作正常,但我已經注意到網頁上的任何PHP是不會被解析和被註釋掉了,像這樣:<!--?php echo $myvar ?-->
有誰知道爲什麼這可能會發生?這裏是我的索引中的一些PHP:
$fragment = $_GET['_escaped_fragment_'];
$file = '' . (isset($fragment) && $fragment != '' && $fragment != '/' ? preg_replace('/\//', '', $fragment) : 'home') . '.html';
$re = '/(^<[^>]*>)|(\n|\r\n|\t|\s{2,4})*/';
$handle = fopen($file, 'r');
if ($handle != false) {
$content = preg_replace($re, '', fread($handle, filesize($file)));
fclose($handle);
} else {
$content = 'Page not found!';
header(php_sapi_name() == 'cgi' ? 'Status: 404' : 'HTTP/1.1 404');
}
我注意到裏面有一個正則表達式。也許這跟它有關係?我不能完全理解這裏發生了什麼,我不是專家。 不要正是希望把我的網站備份,如果這是要留這樣的..
請借給我這裏
正則表達式只是將一個空白片段變成'home',或者將任何'/'轉義成非空白片段中的'\ /'。它不會像你所看到的那樣創建一個html評論。事實上,該代碼片段中沒有任何內容會創建HTML註釋。 –
@Marc B感謝信息,即時通訊與正則表達式,我忘了提及,HTML文件包含PHP,但我的htaccess有一個處理程序,這可能與它有什麼關係? – Ricki
不知道。可能是某種安全模塊,或者某些其他解析器認爲PHP無效xml('<?'也被xml使用)並試圖「修復」它。 –