2010-10-24 119 views
0

我已經編寫了一個小型php腳本,它使用了使用了mod_rewrite規則的乾淨網址。該腳本需要知道位置以便運行。檢測域根目錄或子目錄中的腳本

  • 根域名:yourdomain.com
  • 子DIR yourdomain.com/subdir/

目前設置路徑的腳本。我用下面的兩個,

  • 案例:根域

    定義( 「在scriptUrl」, 'HTTP://'.$_SERVER [' HTTP_HOST '] .dirname($ _ SERVER [' PHP_SELF'])); define(「ScriptUri」,dirname($ _ SERVER ['PHP_SELF']));

  • 案例:子目錄

    定義( 「ScriptUrls」 的 'https://'.$_SERVER ')[' HTTP_HOST '] .dirname($ _SERVER [' PHP_SELF]'/」 ); (「ScriptUrl」,'http://'.$_SERVER ['HTTP_HOST'] .dirname($ _SERVER ['PHP_SELF'])。'/'); 定義( 「ScriptUri」,目錄名($ _ SERVER [ 'PHP_SELF'])。 '/')

現在,我的問題我怎麼能檢測的腳本在子目錄(yourdomain.com/subdir/)或根域(yourdomain.com)。任何方式在PHP中執行此操作或我已爲每個安裝手動設置配置?

回答

0

替換變量$page_url與正在檢查的URL和替換變量$sub_dir與子目錄名稱,如'/subdir'

if (FALSE === strpos (strtolower ($page_url), strtolower ($sub_dir))) 
{ 
    // run code for non sub dir 
} 
else 
{ 
    // run code for SubDir 
} 

strtolower()功能都不是很必要的,但我通常使用這些以確保您不擔心區分大小寫的檢查。

+0

我沒有檢查任何URL。我必須在配置文件中設置路徑。目前,如果腳本安裝爲yourdomain.com或Case:SubDir:yourdomain.com/subdir,則手動選擇Case:root domain,然後進一步定義相對於ScriptURl路徑的所有路徑。我需要一些需要自動檢測這種方法的方法。希望我這次清楚 – CuriousMind 2010-10-24 22:20:09

+0

所以也許只是一個switch case語句? – cointilt 2010-10-25 16:34:04