2

我有一个 url,例如:http://localhost/project当用户去那里时,我想重定向到http://localhost/project/en. 我该如何做到这一点?

4

2 回答 2

3

您可以通过编程方式或在 Web 服务器级别使用某些东西(例如,使用 Apache 的 mod_rewrite)来执行此操作。由于您明确提到了 PHP,我将为您提供以下内容。

在文档根目录下名为“project”的文件夹中,使用以下内容创建 index.php:

<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://localhost/project/en" );
exit(0);
?>

这是一个链接,显示了这种风格和其他方法(包括 mod_rewrite)来处理这个:

http://www.phatz.com/301redirect.php

于 2013-03-25T14:38:13.643 回答
1

有很多方法。您应该使用虚拟主机并重写 uri 来正确准备您的 URL,但如果您不想打扰这些,并且想要一种“正好有效”的方法来解决您提出的问题,那么试试这个:

$explode = explode('/',$_SERVER['REQUEST_URI']);
if (count($explode) == 1)){
   header('Location: http://localhost/project/en');
}

评论后编辑

试试这个,但要注意我没有测试它,因为我没有我的产品。这里的环境,但它应该工作。如果没有,请评论:)

$explode = explode('/',$_SERVER['REQUEST_URI']);
$endsWithSlash = FALSE;
end($explode);
if (empty($explode[key($explode)])){
   unset($explode[key($explode)]);
   $endsWithSlash = TRUE;
}
if (end($explode) != 'en'){
   $url = 'http://localhost';
   $url .= $_SERVER['REQUEST_URI'];
   if (!$endsWithSlash){ $url .= '/'; }
   $url .= 'en';
   header('Location: '.$url);
}
于 2013-03-25T14:37:10.157 回答