1

我有一个网站,比如 www.example.com(不是实际名称)。在这个网站上我有

index.php(登录前网站首页)和 home.php(登录后网站首页)

作为我的 DirectoryIndex index.php(在 .htaccess 中),index.php 不会出现在地址栏中。但是当登录时,它显示 home.php 作为链接的一部分。

不想在 url中显示“home.php”。我正在考虑在 .htaccess 中使用一些 url 重写规则,但我被卡住了。

有什么简单的解决方案吗?

如果需要,请让我知道你们是否需要任何其他系统/服务器相关信息。

//编辑我从 facebook.com 得到这个想法。

4

4 回答 4

2

做这样的事情的一种方法是在你的 php 脚本中使用某种控制器。在脚本的开头检查以查看是否已登录,并根据答案,需要适当的代码。你不需要 .htaccess 来做这样的事情!

您总是可以将 home.php 重命名为听起来更好听的名称,例如/home使用简单的重定向。

RewriteRule ^home/?$ home.php [NC,L]

这将在浏览到 yoursite.com/home 时显示 home.php 页面。显然,即使未登录也可以访问,但您似乎暗示如果未登录,您不打算显示链接!

于 2012-09-15T20:58:54.567 回答
1

恕我直言,最简单的方法是拥有单个登录页面index.php,该页面应包括public.phpprivate.phphome.php在您的情况下)取决于注销/登录状态。

于 2012-10-01T11:28:32.087 回答
0

正如您所提到的,使用网络服务器重定向只是一种解决方法。

您的问题是 PHP 脚本本身。它当然不知道您的 URI 设置和DirectoryIndex文件,因此使用 home.php 作为 URL 目标。

所以你有两个选择:

  • 使网络服务器重定向/home.php/
  • 调整您的 PHP 脚本以指向home.php
  • 调整您的 PHP 脚本以检查何时home.php加载,如果 URI 为/home.php,然后重定向到/

很难说最好的选择是什么。但是您的 URI 设置(目录索引)比您的 php 文件名更有可能发生变化。因此我会选择网络服务器配置——一个303 重定向/.

于 2012-09-15T21:10:35.180 回答
0

在 index.php 页面上试试这个

<?php require('home.php');?

home.php 是 url 的主页(当然没有 qoute)

于 2013-05-02T06:59:29.137 回答