Php 在单击链接时检测,在新帧中打开

Php 在单击链接时检测,在新帧中打开,php,javascript,jquery,Php,Javascript,Jquery,我想使用框架创建一个基本的URL重写 我没有访问.htaccess的权限来执行修改 有没有一种方法可以使用PHP、jQuery、JavaScript等来检测点击了哪个URL,然后在新框架中打开URL Ex:用户单击/index.php?12345它将在框架窗口中打开/pages/12345/index.html,如果他们单击/index.php?54321URL将在框架窗口中打开/pages/54321/index.html如果我真的了解你想要什么,我认为这很简单 当用户单击时,它调用JQuer

我想使用框架创建一个基本的URL重写

我没有访问
.htaccess
的权限来执行
修改

有没有一种方法可以使用PHP、jQuery、JavaScript等来检测点击了哪个URL,然后在新框架中打开URL


Ex:用户单击
/index.php?12345
它将在框架窗口中打开
/pages/12345/index.html
,如果他们单击
/index.php?54321
URL将在框架窗口中打开
/pages/54321/index.html
如果我真的了解你想要什么,我认为这很简单


当用户单击时,它调用JQuery函数,该函数使用AJAX将链接的内容发送到PHP。之后,PHP分析链接,获取页面内容(包含()),并通过JSON将其发送给JQuery。

我不太明白你的意思。通常url重写的工作方式如下:
用户点击
哪个是被改写的

您可以通过在Web服务器中创建链接来假装这种效果,但服务器仍然会请求index.php页面,在该页面中,您可以使用

然后对其进行解析以获得所需的内容

$\u服务器上的PHP.net['PATH\u INFO']

包含任何客户端提供的路径名 跟踪实际脚本的信息 文件名,但在查询之前 字符串(如果可用)。例如,如果 当前脚本是通过 网址 , 然后$\u服务器['PATH\u INFO']将 包含/一些/东西


这样的jquery可能会有所帮助

jQuery(function($){
  //this prevents all link elments' default behaviour 
  //when you click they won't navigate the page
  $("a").click(function(){
    //you get the links href
    var actual_url = $(this).attr("href");
    var new_url = "";
    //[write your code here for converting actual url to new one]
    //and open the new url in the frame you want
    window.parent.yourFrameName.location = new_url;
    //necessary for preventing default behaviour
    return false;
  });
});

Sinan.

最好的解决方案是使用jquery检查链接是否被访问,然后将链接的目标更改为“空白”

您可以使用此网站的插件: 然后执行这样的代码:

 $('a').visited(function () {
  $(this).attr('target','_blank');
});

我想这就是你想要的。

一个PHP解决方案应该是这样的:

if (!empty($_REQUEST)) {
    $page = array_pop($_REQUEST);
    if (is_numeric($page)) {
        header("Location: pages/$page/index.html");
        exit;
    }
}

我不需要所有的页面重新编写,所以一些真正基本的东西会工作。例如,在PHP中,如果url=domain1 load urlA elseif url=domain2 load urlBdo,则选择获取url。您是否有一个用于转换url的基本代码示例,如我在上面为PHP所述?
if (!empty($_REQUEST)) {
    $page = array_pop($_REQUEST);
    if (is_numeric($page)) {
        header("Location: pages/$page/index.html");
        exit;
    }
}