我想使用框架创建基本的URL重写。
我无法.htaccess
访问mod_rewrite
。
有没有办法使用PHP,jQuery,JavaScript等来检测点击了哪个URL,然后在新框架中打开URL?
Ex:用户点击/index.php?12345
它会在框架窗口/pages/12345/index.html
中打开,如果他们点击/index.php?54321
,则会在框架窗口中打开{{1 }}
答案 0 :(得分:1)
我认为我不明白你的意思。通常url重写的工作原理如下:
用户点击http://example.com/content/example
哪个被重写为http://example.com/index.php?cat=content&page=example
你可以通过使你的链接进入http://example.com/index.php/content/example来假设这种效果,网络服务器仍会请求页面index.php,然后你可以在其中读取index.php之后的部分(但在查询字符串之前)
$_SERVER['PATH_INFO']
然后解析它以获得所需内容。
PHP.net on $ _SERVER ['PATH_INFO']
包含任何客户提供的路径名 跟踪实际脚本的信息 文件名但在查询之前 字符串,如果有的话。例如,如果 当前脚本是通过访问的 URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, 然后$ _SERVER ['PATH_INFO']会 包含/某些/东西。
答案 1 :(得分:1)
PHP解决方案将是这样的:
if (!empty($_REQUEST)) {
$page = array_pop($_REQUEST);
if (is_numeric($page)) {
header("Location: pages/$page/index.html");
exit;
}
}
答案 2 :(得分:0)
如果我真的明白你想要什么,我认为这很容易。
当用户点击它时,调用一个JQuery函数,该函数使用AJAX将链接的内容发送到PHP。之后,PHP分析链接,获取页面内容(使用include())并通过JSON将其发送到JQuery。
答案 3 :(得分:0)
这样的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;
});
});
思南。
答案 4 :(得分:0)
最佳解决方案是使用jquery检查是否访问了链接,然后将链接的目标更改为_blank。
您可以使用此网站的插件: link text然后执行此类代码:
$('a').visited(function () {
$(this).attr('target','_blank');
});
我认为这就是你要找的东西。