【发布时间】:2011-06-19 10:23:08
【问题描述】:
客户要求我自动将任何带有井号的网址重定向到不带井号的版本,但我认为我没有使用这个公式在我的任何网址中检测到 #。我使用 curPageURL() 公式通过电子邮件向自己发送了一个示例 URL,它不包含我正在测试的 URL 中的尾随 # 符号。
function curPageURL() {
$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"];
}
return $pageURL;
}
if(stripos($currenturl,'#'))
{
Header( "HTTP/1.1 301 Moved Permanently" );
$location = 'Location: ' . str_replace('#','',$currenturl) . '/';
Header($location);
}
*更正 - 我在标题的最后说,我的意思是最后,我的代码在这里明显地检测到 url 中任何地方的井号。 *
【问题讨论】:
-
#不会传输到服务器(它保留在浏览器端),因此在 PHP 中是不可能的。你可以在 JS 中做到这一点,但不能在 PHP 中......