|
问题出现
有些空间不支持绑定到子目录,于是大牛们想到了 rewrite 来绑定子目录
规则举例- # shop.tkxxd.net
- RewriteCond %{REQUEST_URI} !^/shop.tkxxd.net/.*
- RewriteCond %{HTTP_HOST} =shop.tkxxd.net
- RewriteRule ^(.*) /shop.tkxxd.net/$1 [L]
复制代码 将 shop.tkxxd.net 绑定到 shop.tkxxd.net/ 目录里去。
但是装 shopex 后,会发现一件悲剧的事情,就是链接里出现了类似
http://shop.tkxxd.net/shop.tkxxd.net/xxx
把实际的安装目录也给带进来了。
寻找原因
解开 shopex 的包,可以看到这种代码- $this->_base_url = "http://".$_SERVER['HTTP_HOST'].substr( PHP_SELF, 0, strrpos( PHP_SELF, "/" ) + 1 );
复制代码- define( "PHP_SELF", dirname( $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'] ) );
复制代码 可以知道 shopex 主要是通过 $_SERVER['PHP_SELF'] 来确定访问路径的
解决方案
知道这么多后,接下来要怎么做呢?
config/config.php 这个文件基本上都要引入吧,而且还不是加密的(解密出来的文件只供阅读,真正使用还有一些距离),这样邪恶的插入类似以下的代码- $_SERVER['PHP_SELF'] = str_replace('/shop.tkxxd.net', '', $_SERVER['PHP_SELF']);
复制代码 后台 =》关于 =》清除缓存
一切搞定 |
|