在 php 中执行此操作的方法如下:
该函数检查页面是否被直接查看。
function directviewcheck(){
$requestingurl = $_SERVER['REQUEST_URI'];
$phpself = $_SERVER['PHP_SELF'];
$phpselflength = strlen($phpself);
$resulturlcrop = mb_substr($requestingurl, 0, $phpselflength);
if( $resulturlcrop == $phpself ){
return true;
}else{
return false;
}
}
这将告诉您浏览器中的 url 是否与文件名匹配。如果确实如此,它将返回 true。
接下来在 index.php 中调用它:
if( directviewcheck() == true ){
// your redirect code
// Something like this should work
$gamename = $_GET['play'];
header("HTTP/1.1 301 Moved Permanently")
header("Location: http://www.yoursite.com/play/" . $gamename );
exit; // make sure you use exit or its alias die to prevent the page from showing.
}
旧链接将转到新页面,并且仍然通过旧链接访问您的内容的搜索引擎会知道删除它们并索引新链接。
如果您需要它更加动态,您可以创建一个位置变量,然后根据使用情况将其放入 header() 中。
无论如何,您的问题已经过时,但可能对您或其他人仍然有用。
====
在 .htaccess 中,sjdaws 看起来可以工作。
====
就您的 Facebook 而言,我看到了这些:
Facebook 喜欢计数在 301 重定向后重置
或
如何管理可能略有变化的 URL 的“喜欢”按钮?