2010-10-24 110 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