-1

我有目录 abc,里面有两个文件。一个是 login.php,另一个是 index.php。我有路径 localhost/abc 重定向到 index.php,但我想重定向到 login.php。

4

3 回答 3

2

默认情况下,页面将始终打开index.php目录中的文件。这是默认行为。您可以通过更改服务器设置来更改它,但这取决于您使用的服务器,例如。Apache IIS 等

假设您正在使用 Apache... 您需要httpd.config在 apache 文件夹中的文件中更改以下行

<IfModule dir_module>
    DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>

此行将查找 index.php,如果未找到,它将搜索其后列出的连续文件。您可以根据需要更改文件的顺序。

由于您已标记您的问题 javascript,您可以使用以下代码重定向到所需的页面,而无需更改服务器设置

<script type="text/javascript" language="javascript">
    window.location = 'login.php';
</script>

但我认为你想做一些事情,如果用户没有登录然后重定向到你可以做的登录页面..

假设您PHP一次又一次地使用会话

//write this in index.php
if(isset($_SESSION["isLoggedin"]) && $_SESSION["isLoggedin"]==true){ //if user has logged in and session variable has been set.
    header("Location:login.php"); //this will redirect the page to login.php
}

希望这可以帮助...

于 2012-12-07T10:29:21.033 回答
0

当访问 localhost/abc 它重定向到 index.php

//index.php
//javascript method
if( !checkLogin() ){
    window.location.href = 'login.php'
}
//php way
if( !checkLogin() ){
    header('location: login.php');
}

checkLogin 未登录时返回 false。

于 2012-12-07T10:20:20.063 回答
0

如果可以使用 PHP,为什么要使用 javascript 重定向?

  • 如果 javascript 被禁用,那么重定向将不起作用!
  • 在某些情况下,您必须对 url 进行编码
  • HTTP 比 JavaScript 更适合这项工作
  • 搜索引擎跟随他们
  • 您可以说明它是否是永久的

使用 PHP 重定向 302

<? header('Location: /login.php'); ?>

标头函数将原始标头数据发送到客户端 Web 浏览器,在这种情况下发送302 状态代码,指示浏览器重定向到给定位置。但它不会是好的 SEO 明智的。

于 2012-12-07T10:38:32.503 回答