在我的脚本中,此函数部分构建链接:
if ($type == "mod_rewrite") {
$prepend = "";
$append = ".html";
} else if ($type == "query_string") {
$prepend = 'index.php?params=';
$append = "/";
}
//
//
//
$gamelink = 'game/id/gamename' (example)
/* 'game' is a fixed string.
'id' and 'gamename' are variables) */
我的.htacess如下:
RewriteEngine on
RewriteRule ^(.*)\.html$ index.php?params=$1 [NC,L]
问题:
我在游戏页面中有一个ajax评级栏,它在查询字符串模式下完美运行:
(在这个例子中:gamename ='Arm Copter'和gameid ='3')
游戏链接:
http://localhost/gss/index.php?params=game/3/Arm-Copter/
评级链接(鼠标悬停星星图片)
http://localhost/gss/plugins/ajax_star_rater/db.php?j=10&q=arm_copter&t=127.0.0.1&c=10
使用ModRewrite: 游戏链接:
http://localhost/gss/game/3/Arm-Copter.html
评级链接(星星缺失,仅显示与星星对应的数字):
http://localhost/gss/game/3/plugins/ajax_star_rater/db.php?j=10&q=arm_copter&t=127.0.0.1&c=10
这里的问题似乎是插入了url part'game / id /',因为db.php的正确路径是:
http://localhost/gss/plugins/ajax_star_rater/db.php
而不是:
http://localhost/gss/**game/3/**plugins/ajax_star_rater/db.php
我花了两天时间搜索和测试各种方法,但我没有找到解决方案。我需要一个不重写ajax评级栏或重写正确路径的规则。
问候,
初级高级 - 巴西。
答案 0 :(得分:1)
我找到了解决方案:你必须编辑rating.js -
function sndReq(vote,id_num,ip_num,units) {
var theUL = document.getElementById('unit_ul'+id_num); // the UL
// switch UL with a loading div
theUL.innerHTML = '<div class="loading"></div>';
xmlhttp.open('get', 'rpc.php?j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units);
xmlhttp.onreadystatechange = handleResponse;
xmlhttp.send(null);
}
您需要更改此行:
xmlhttp.open('get', '../../rpc.php?j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units);
rpc.php之前的部分需要为../../
答案 1 :(得分:0)
在调用插件(http://localhost/gss/game/3/plugins/ajax_star_rater/db.php)的评级链接的html中,您可能正在使用当前文件夹中的相对路径,听起来您需要使用相对于根文件夹的路径。
而不是:
<a href="plugins/ajax_star_rater/db.php">Rate me!</a>
您需要使用/添加启动链接并写入脚本的完整路径:
<a href="/gss/plugins/ajax_star_rater/db.php">Rate me!</a>
希望有所帮助。