【问题标题】:Adding a extra path after domain在域后添加额外路径
【发布时间】: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,因为它是应用程序级路由而不是页面级路由...

标签: php url redirect


【解决方案1】:

我只会使用:

$extra = "en";
$domain = "http://domain.com";
$result = $domain."/".$extra.$_SERVER['REQUEST_URI'];

因为您没有使用协议或域名。

【讨论】:

    【解决方案2】:
    $extra = 'en';
    $domain = $_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI'];
    $new_url=str_replace('.com','.com/'.$extra,$domain);
    

    没有?

    【讨论】:

    • 说,好主意! :D
    • 嗯,是的,原来的不会工作,对不起。可以肯定的是。
    • 可以肯定的是,除非它没有.com,否则基地是什么并不重要。 Mihai 的解决方案在您想要更改域基础的情况下更有意义,因为您可以指定它是什么。
    • 喜欢str_replace('.com/mybase','.com/mybase/'.$extra,$domain) ?
    • 等一下,将测试agian
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多