需要将任何可能输入的URL重定向到同一服务器上的新域

时间:2015-05-12 15:12:53

标签: wordpress .htaccess mod-rewrite redirect

我在同一个服务器上有两个域来自同一个wordpress数据库,我想任何时候有人在sitea.com/random中键入重定向到siteb.com/random。我可以使用

重定向主页

RewriteCond %{HTTP_HOST} ^www2\.sitea\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.www2\.sitea\.com$ RewriteRule ^/?$ "http\:\/\/www2\.siteb\.com" [R=301,L]

但是,这不会转发任何带有结尾URL的URL(例如sitea.com/random/)。我已经使用了通配符选项将所有内容转发到新域,但是由于站点是从同一个IP中提取的,因此它会进入重定向循环。

任何帮助将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

class BASE
{
  public:
            virtual void test_f(){std::cout<<"BASE::test_f\n";}
};

class DERIVED:public BASE
{
    public:
            virtual void test_f(){std::cout<<"DERIVED::test_f\n";}
};

void (BASE::*p_base)() = &BASE::test_f;

答案 1 :(得分:0)

不幸的是,这并不容易,但我最终找到了答案。在wp-config.php中,我添加并运行了函数

    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;
}
$redirect = str_replace("www2.", "", curPageURL());
$remove_http_root    = str_replace('http://', '', $redirect);
$split_url_array     = explode('/', $remove_http_root );


if($split_url_array[0] == "olddomain.com"){
    header("Location: http://www2.newdomain.com/$split_url_array[1]");
    die();
}

然后我在.htaccess

中为主页添加了一个简单的重定向
RewriteCond %{HTTP_HOST} ^www2\.olddomain\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.www2\.olddomain\.com
RewriteRule ^/?$ "http\:\/\/www2\.newdomain\.com" [R=301,L]

希望这会帮助别人。也许有人会想出一个更清洁的方法来做到这一点。