我有一个 url,例如:http://localhost/project
当用户去那里时,我想重定向到http://localhost/project/en
. 我该如何做到这一点?
问问题
318 次
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)来处理这个:
于 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 回答