2012-07-06 75 views
1

我剛剛被授予訪問開發服務器的權限。我在名爲「test-site」的public_html文件夾中創建了一個目錄。當我訪問http://developmentdomain.com/test-site/時,URL字符串變爲:http://developmentdomain.com/test-site/?p=test-sitePHP腳本在所有目錄中改變URL結構

發生這種情況的原因是因爲根目錄中的index.php正在告訴所有子目錄將其添加到URL的末尾。主站點(託管在根目錄中)需要此文件,但我不希望所有其他子目錄受其影響。我將如何更改以下代碼,使其僅適用於root,bot而不是子目錄?這條線是什麼原因造成的:$p = ($_REQUEST['p'] != '' ? $_REQUEST['p'] : 'home');

CODE:

<? 
session_start(); 
$_SESSION['bj'] = 1; 
include "db.php"; 
require_once("classes/layout.class.php"); 
require_once("classes/content.class.php"); 
$p = ($_REQUEST['p'] != '' ? $_REQUEST['p'] : 'home'); 

$layout = new layout(); 
$layout->startPage($p); 
$layout->buildHead($p); 
$layout->buildBody($p); 

$content = new content(); 
$content->buildHeader($p); 
$content->buildLogoNav($p); 
$content->buildPage($p); 
$content->buildFooter($p); 

$layout->closePage($p); 
?> 
+0

上面的代碼是完整的index.php文件中的根 – JCHASE11 2012-07-06 20:34:48

回答

1

看來,$ _ GET參數被用來作爲一個定製CMS。

  1. 檢查任何重寫規則。
  2. 審查佈局()類
  3. 審查你的服務器端包含classes/layout.class.php & classes/content.class.php

的URL在某個時候被修改編程。假設它不是#1的問題,然後留意一部分代碼操縱header(),即header('Location: some/new/location');

+0

是的,謝謝你的回答。這確實是一個自定義的CMS,但該組織是真正的混亂。我要四處挖掘,看看我能找到什麼。 – JCHASE11 2012-07-06 20:40:37

+0

類目錄中沒有任何內容正在更改URL,必須是一些重寫規則。 – JCHASE11 2012-07-06 20:43:18

+0

這似乎是罪魁禍首:RewriteRule ^([A-Za-z0-9 _-] +)$ /index.php?p=$1 – JCHASE11 2012-07-06 20:45:02