目前的状况是,我的一个公司网站,在国内支持静态化的Windows主机上不需要任何配置便能完美支持,具体地址(国内某Windows主机):http://linlin.cor.com.cn/en/News.php点里面任何一条NEW新闻,可通过伪静态正常访问,具体URL形式类似:http://linlin.cor.com.cn/en/news.view.php/page-1-id-31.html这样。最近为了国外访问迅速,换到Linux服务器,问题就来了。默认什么都不配置的情况下便出现该页无法显示,主机商亦不知如何写这个.htaccess,若有能解决者,送可绑独立域名并含Cpanel平台管理权限的Linux虚拟主机一个!我的QQ6358921
比如:http://linlin.cor.com.cn/en/News.php?page=1&id=31
那么要转换成如下链接
http://linlin.cor.com.cn/en/news.view.php/page-1-id-31.html就可以用如下内容的htaccess#ErrorDocument 404 /<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
RewriteBase /RewriteRule ^news.view.php/page-(.+)-id-(.+).html News.php?page=$1&id=$2</IfModule>
#ErrorDocument 404 /
这行
该成
ErrorDocument 404 / 也就是前面的#去掉,应该可以看到一个错误页面,说明映射关系有问题,你说的rar我分析一下先呵呵,冲着你的承诺来的哈~~
在news.php里增加以下两个函数:-------------------------------------------------
function _getScriptPath(){
$filename = basename($_SERVER['SCRIPT_FILENAME']);
if (basename($_SERVER['SCRIPT_NAME']) === $filename) {
$baseScript = $_SERVER['SCRIPT_NAME'];
} elseif (basename($_SERVER['PHP_SELF']) === $filename) {
$baseScript = $_SERVER['PHP_SELF'];
} elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $filename) {
$baseScript = $_SERVER['ORIG_SCRIPT_NAME']; // 1and1 shared hosting compatibility
} else {
$path = $_SERVER['PHP_SELF'];
$segs = explode('/', trim($_SERVER['SCRIPT_FILENAME'], '/'));
$segs = array_reverse($segs);
$index = 0;
$last = count($segs);
$baseScript = '';
do {
$seg = $segs[$index];
$baseScript = '/' . $seg . $baseScript;
++$index;
} while (($last > $index) && (false !== ($pos = strpos($path, $baseScript))) && (0 != $pos));
}
return $baseScript;
}function parsePathInfo(){
if ( ! isset($_SERVER['PATH_INFO']) || $_SERVER['PATH_INFO'] == ''){
$strlen = strlen(_getScriptPath());
$totallen = strlen($_SERVER['PHP_SELF']);
return substr($_SERVER['PHP_SELF'],$strlen,$totallen);
}else{
return $_SERVER['PATH_INFO'];
}
}
-------------------------------------------------然后把news.php的第13行:
$path_info=$_SERVER["PATH_INFO"];
改为
$path_info=parsePathInfo();
再试试吧,我白天只能访问csdn,之外的网络都访问不到的
这台是之前运行正常的Windows服务器,我刚才修改了htaccess,没有看到你说的错误,点击新闻链接会跳到主页,而里面的图片路径全部错误。第二个方案目前正在试,你如果方便的话加我QQ 1272298127 我把Linux上正在调试的网站发给你