目前的状况是,我的一个公司网站,在国内支持静态化的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
解决方案 »
- 哪位老大知道怎么用php启动ie浏览器?
- 如何用帐号绑定机器
- 关于二级域名外文件夹写权限
- 向高手求救:想用php调用vb中的方法生成ocx,用vb写得代码打印机控件(有代码),如何修改vb代码啊?[
- php不能连接mysql
- 问一个编码(UTF-8)问题,急急急!!!
- javascript与php互相欠套的问题,在线等
- mysqladmin的问题!!
- php在一般项目中的常用到的函数,100分提供
- php中 if()和while() 条件不应该是 BOOL类型么 if($row=mysql_fetch_assoc($rec))这个 照样可以用是为什么
- media player问题
- 急!关于mysql数据库插入的问题!
比如: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上正在调试的网站发给你