从网址隐藏主页和索引页面名称

时间:2012-09-15 20:43:05

标签: php apache .htaccess url url-rewriting

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

  

index.php(登录前网站的第一页)和home.php(第一页   登录后的网页)

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

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

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

如果您需要任何其他系统/服务器相关信息,请告诉我。

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

4 个答案:

答案 0 :(得分:2)

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

您可以随时使用简单的重定向将home.php重命名为/home更好的内容。

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

在浏览yoursite.com/home时会显示home.php页面。显然即使没有登录也可以访问,但是你似乎暗示如果没有登录你就不打算显示链接!

答案 1 :(得分:1)

最简单的方法是使用单个目标网页index.php,其中应包含public.phpprivate.phphome.php在您的情况下),具体取决于退出/登录状态。

答案 2 :(得分:0)

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

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

所以你有两个选择:

  • 让网络服务器将/home.php重定向到/
  • 调整PHP脚本以指向home.php
  • 调整PHP脚本以检查何时加载home.php,URI是/home.php,然后重定向到/

很难说最好的选择是什么。但是你的URI设置(目录索引)比你的php文件名更容易改变。因此,我会选择网络服务器配置 - 303 redirect/

答案 3 :(得分:0)

在index.php页面上试试这个

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

其中home.php是网址的主页(当然没有qoute)