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

如何移除URL中的.php后缀并添加斜杠/?

如何移除URL中的.php扩展名并添加末尾斜杠

1. 前端修改已渲染的链接

如果要调整页面上已存在的<a>标签,用JavaScript遍历处理即可:

// 遍历带nofollow noreferrer属性的目标a标签
document.querySelectorAll('a[rel="nofollow noreferrer"]').forEach(link => {
  let href = link.getAttribute('href');
  let text = link.textContent;
  
  // 仅处理以.php结尾的链接
  if (href.endsWith('.php')) {
    const newHref = href.slice(0, -4) + '/';
    const newText = text.slice(0, -4) + '/';
    link.setAttribute('href', newHref);
    link.textContent = newText;
  }
});

这段代码会自动把符合条件的链接的href属性和显示文本里的.php去掉,替换成末尾加斜杠的格式。

2. 后端PHP生成正确链接

如果是PHP项目,直接在生成链接时输出带斜杠的路径:

echo '<a href="http://www.example.com/about/" rel="nofollow noreferrer">www.example.com/about/</a>';

要是需要批量替换现有HTML里的链接,可选择字符串替换或精准正则匹配:

// 简单全局替换(适合所有.php都需要修改的场景)
$originalHtml = '<p><a href="http://www.example.com/about.php" rel="nofollow noreferrer">www.example.com/about.php</a></p>';
$modifiedHtml = str_replace('.php', '/', $originalHtml);

// 精准正则替换(避免误改其他带.php的无关文本)
$pattern = '/(href=".*?)\.php(".*?>.*?)\.php(<\/a>)/';
$replacement = '$1/$2/$3';
$modifiedHtml = preg_replace($pattern, $replacement, $originalHtml);

3. 服务器端重写(Nginx)

要让用户访问旧的.php路径时自动跳转到新的带斜杠路径,同时保证新路径能正常解析,在Nginx配置中添加以下规则:

server {
    # 其他配置项...
    
    # 将.php结尾的URL永久重定向到带斜杠的路径
    rewrite ^/(.*)\.php$ /$1/ permanent;
    
    # 把带斜杠的路径指向对应的PHP文件
    rewrite ^/(.*)/$ /$1.php last;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:30:51