【发布时间】:2013-04-08 11:32:58
【问题描述】:
如果尝试在所有网址中我的域之后的网址中添加额外路径
$extra = "en";
$domain = "http://domain.com";
$current = currentURL();
$rest_path = str_replace($domain,'',$current);
$result = $domain."/".$extra.$rest_path;
// $result is "http://domain.com/en/mysub/mysub"
在此之后,我使用 PHP 重定向重定向我的网站
获取当前网址的方法是......
function currentURL() {
$pageURL=(@$_SERVER["HTTPS"]=="on")?"https://":"http://";
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;
}
这看起来像很多步骤,这样做更容易吗?或者请查看我糟糕的编码。
PS : 尽量不要使用.htaccess
【问题讨论】:
-
看起来像是 .htaccess 文件的工作。
-
对我来说看起来不错,我会在 $_SERVER 之前取出“@”并使用 isset() 进行清理,因为使用它是一种不好的做法(仅在开发时使用)
-
不知道,为什么不在 $_SERVER 上用 ".com/".$extra 替换 str_replace .com?您是在不同的域上执行此操作,还是域始终保持不变?
-
我试过你的代码,它工作。我的猜测是其他事情搞砸了。
-
您可能应该为此使用
.htaccess,因为它是应用程序级路由而不是页面级路由...