这个问题似乎很简单,但经过 3 天的搜索,我放弃了。我以为我会在这里找到它,它似乎有类似的,但它不适用于这些东西。
目前,我有一位客户基于他以前的 JS/AJAX 驱动网站进行了非常先进的营销。他网站的所有反向链接就像
服务器/#!关联
我已经建立了一个 wordpress 网站,我需要让交叉链接正确打开页面。
但是如果我得到这个链接
服务器/#!关联
当 Wordpress 处理它时,我得到以下 URL
服务器 /
我已经探索过唯一的方法,或者至少我知道的唯一方法是用 wordpress 来做,但这似乎并不容易。
我有以下脚本可以添加 #! 但需要删除(只是在某处找到)
<?php
$webSiteUrl = get_bloginfo('url')."/";
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {
$pageURL .= "s";
};
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
};
if($webSiteUrl!=$pageURL){
$pageHash = substr($pageURL, strlen($webSiteUrl), strlen($pageURL));
header("location:".$webSiteUrl."#!/".$pageHash."");
exit;
};
?>
多亏了squeamish ossifrage,我快到了。我使用此脚本,因为您提供的脚本有一些条件问题
if ('' !== window.location.hash && '#!' !== window.location.hash) {
hash = location.hash.match(/^#!(.*)/)[1];
/* ... do something with hash, like redirecting to */
/* another page, or loading page content via AJAX. */
/* If all you want to do is remove everything from */
/* the URL starting with `#!', then try this: */
location.href = location.protocol+'//'+location.host+location.pathname;
}
它似乎有效,但我得到了根页面。
例如我打开
myweb.com/#!thisone
我得到
myweb.com/
并且只是总结一下,这样有人可以节省大量时间 - 工作脚本是
if ('' !== window.location.hash && '!' !== window.location.hash) {
hash = location.hash.match(/^#!(.*)/)[1];
/* ... do something with hash, like redirecting to */
/* another page, or loading page content via AJAX. */
/* If all you want to do is remove everything from */
/* the URL starting with `#!', then try this: */
location.href = location.protocol+'//'+location.host+location.pathname+'/'+hash;
}