天空小小岛技术网站
标题:
shopex 装在 rewrite 目录下的路径问题解决方案
[打印本页]
作者:
一粒米
时间:
2012-4-15 16:46
标题:
shopex 装在 rewrite 目录下的路径问题解决方案
问题出现
有些空间不支持绑定到子目录,于是大牛们想到了 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']);
复制代码
后台 =》关于 =》清除缓存
一切搞定
欢迎光临 天空小小岛技术网站 (http://tkxxd.net/)
Powered by Discuz! X3.1