You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现返回按钮仅非首页显示的问题求助(含URL重写场景)

解决方案:正确判断首页并控制返回按钮显示

方法1:结合PHP_SELF与REQUEST_URI判断

由于你通过.htaccess隐藏了.php扩展名,仅靠脚本文件名判断会失效,需要结合实际请求路径综合判断:

<?php
// 获取当前执行的脚本文件名(去掉.php后缀)
$current_script = basename($_SERVER['PHP_SELF'], '.php');
// 清理请求URI的首尾斜杠
$request_uri = trim($_SERVER['REQUEST_URI'], '/');

// 判断是否为首页:脚本是index,且请求路径为beta根目录或beta/index
$is_home = ($current_script === 'index') && in_array($request_uri, ['beta', 'beta/index']);

if (!$is_home):
?>
<!-- 你的返回按钮HTML -->
<button onclick="window.history.back()">返回</button>
<?php endif; ?>

方法2:直接基于请求URI判断

如果站点根路径固定为/beta/,可以简化判断逻辑:

<?php
$request_uri = $_SERVER['REQUEST_URI'];
// 匹配首页的两种请求形式:根目录访问、index路径访问
$is_home = $request_uri === '/beta/' || $request_uri === '/beta/index';

if (!$is_home):
?>
<button onclick="window.history.back()">返回</button>
<?php endif; ?>

方法3:自定义常量标记(适合多页面项目)

在每个页面的顶部(或公共引入的配置文件)定义常量:

// index.php中
define('IS_HOME', true);

// contact.php、news.php等非首页中
define('IS_HOME', false);

然后在头部模板中直接判断:

<?php if (!IS_HOME): ?>
<button onclick="window.history.back()">返回</button>
<?php endif; ?>

关键注意事项

  • 隐藏扩展名后,$_SERVER['REQUEST_URI']会显示去掉.php后的路径,而$_SERVER['PHP_SELF']仍会保留实际执行的脚本文件名(带.php),两者结合才能准确判断。
  • 如果你的.htaccess有特殊重写规则,需要根据实际生成的请求路径调整$is_home的判断条件。

内容的提问来源于stack exchange,提问作者Noquierona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:04:56