我正在使用PHP MVC Codeigniter作为后端,BackboneJS作为我的应用程序的前端。我使用了pushState:true
- 函数并将以下代码添加到我的根index.php中,以便我的页面在尝试重新加载或向其他用户发送URL时返回有效的URL。
$url = preg_replace('/^myproject\//', '', ltrim($_SERVER['QUERY_STRING'], '/'));
$urlPatterns = array (
'home',
'nyheder',
'artists' ,
'artists\/[a-zA-Z]',
'releases',
'live',
'videoes' ,
'competitions' ,
'remix' ,
'[0-9]+' ,
'[0-9]+\/videos',
'[0-9]+\/releases'
);
if(!(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')) {
foreach ($urlPatterns as $pattern) {
$pattern = "/^{$pattern}$/";
if (preg_match($pattern, $url)) {
readfile('application/views/home.php'); die();
}
}
}
到目前为止它仍然有效,但是一旦我右键单击并“在新标签页中打开”,它会自动添加一个#hashtag,我想完全避免。有谁知道这里的问题是什么?
提前致谢...
答案 0 :(得分:0)
我自己解决了这个问题!
除了设置pushState:true
之外,我还将根文件夹添加到我的<a href>
- 代码中,因此,如果网址为http://yoursite.dk/project
,则HTML中的链接必须为{{1} }
这使它有效!