Htaccess重定向不同的URL以重定向

时间:2016-03-21 14:06:48

标签: .htaccess redirect url-redirection

我正在写一些重定向,因为我们正在更新网站,但我们遇到了一些麻烦。

以下是重定向的网址示例:

www.website.nl/location/depul.html -> www.website.nl/poppodium-de-pul
www.website.de/location/depul.html -> www.website.de/de_pul
www.website.nl/location/naturereserve.html -> www.website.nl/natuurgebied
www.website.de/location/naturereserve.html -> www.website.de/naturschutzgebiet

不同的语言有不同的网址。所以我必须将.de url重定向到.de上的页面,将.nl url重定向到.nl上的页面

我试图使用Redirect 301,但似乎不可能在重定向网址中使用完整的网址。

Redirect 301 www.website.nl/location/depul.html www.website.nl/poppodium-de-pul

有谁知道我能做什么?

由于

2 个答案:

答案 0 :(得分:2)

在索引中使用php解决。

如果有人有兴趣,这是我的代码。

$redirect_urls = array(
    '/home.html' => array('','','',''),
    '/hotelthing.html' => array('hotel','hotel','lhotel','hotel'),
    '/hotelrooms/singleroom.html' => array('rooms/eenpersoonskamer','rooms/einzelzimmer','rooms/chambre_simple','rooms/single_room'),
    '/hotelrooms/doubleroom.html' => array('rooms/tweepersoonskamer','rooms/doppelzimmer','rooms/chambre_double','rooms/double_room')
    );

if (isset($redirect_urls[$_SERVER['REQUEST_URI']])){
    $tld = strrchr ( $_SERVER['SERVER_NAME'], "." );
    $tld = substr ( $tld, 1 );

    if ($tld == 'nl') $sub = 0;
    if ($tld == 'de') $sub = 1;
    if ($tld == 'fr') $sub = 2;
    if ($tld == 'com') $sub = 3;

    header('Location: http://' . $_SERVER['SERVER_NAME'] . '/' . $redirect_urls[$_SERVER['REQUEST_URI']][$sub], true, 301);
    exit();
}

答案 1 :(得分:0)

使用此方法:

重定向301 /location/depul.html www.website.nl/poppodium-de-pul