我有一个网站,比如说www.example.com(不是实名)。 在这个网站上我有
index.php(登录前网站的第一页)和home.php(第一页 登录后的网页)
作为我的DirectoryIndex index.php(在.htaccess中),index.php没有出现在地址栏中。但登录后,它会将home.php显示为链接的一部分。
我不想要在网址中显示“home.php”。我想在.htaccess中使用一些url重写规则,但我被卡住了。
这有什么简单的解决方案吗?
如果您需要任何其他系统/服务器相关信息,请告诉我。
//编辑 我从facebook.com得到了这个想法。
答案 0 :(得分:2)
做这种事情的一种方法是在php脚本中使用某种控制器。检查脚本的开头是否登录并根据答案需要相应的代码。你不需要.htaccess这样的东西!
您可以随时使用简单的重定向将home.php重命名为/home
更好的内容。
RewriteRule ^home/?$ home.php [NC,L]
在浏览yoursite.com/home时会显示home.php页面。显然即使没有登录也可以访问,但是你似乎暗示如果没有登录你就不打算显示链接!
答案 1 :(得分:1)
最简单的方法是使用单个目标网页index.php
,其中应包含public.php
或private.php
(home.php
在您的情况下),具体取决于退出/登录状态。
答案 2 :(得分:0)
如您所述,使用网络服务器重定向只是一种解决方法。
您的问题是PHP脚本本身。它当然不知道您的URI设置和 DirectoryIndex 文件,因此使用home.php作为URL目标。
所以你有两个选择:
/home.php
重定向到/
home.php
home.php
,URI是/home.php
,然后重定向到/
很难说最好的选择是什么。但是你的URI设置(目录索引)比你的php文件名更容易改变。因此,我会选择网络服务器配置 - 303 redirect到/
。
答案 3 :(得分:0)
在index.php页面上试试这个
<?php require('home.php');?
其中home.php是网址的主页(当然没有qoute)