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

如何隐藏地址栏中的PHP页面?如何用PHP改写指定URL?

这俩问题核心都是URL重写的事儿,我给你分情况讲清楚怎么实现:

1. 隐藏地址栏中的PHP页面

最常用的方案是利用Web服务器的URL重写功能,主流的Apache和Nginx配置方式略有不同,另外也可以通过单入口文件的思路统一处理:

Apache服务器配置

  • 首先确认Apache已经开启了mod_rewrite模块(多数主机默认开启,若未开启需在httpd.conf里取消LoadModule rewrite_module modules/mod_rewrite.so的注释)
  • 在你的project_Folder/dist/目录下创建.htaccess文件,写入以下规则:
RewriteEngine On

# 通用规则:隐藏所有PHP扩展名(比如访问test会映射到test.php)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

# 针对单个页面:让访问dist/根路径时实际加载hello.php
RewriteRule ^$ hello.php [L]

这样设置后,地址栏里就不会显示.php后缀了。

Nginx服务器配置

  • 修改你的Nginx站点配置文件(比如/etc/nginx/conf.d/your_site.conf),在server块中添加:
location /project_Folder/dist/ {
    # 隐藏PHP扩展名
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /$1.php last;
    }

    # 访问dist/时指向hello.php
    location = /project_Folder/dist/ {
        rewrite ^ /project_Folder/dist/hello.php last;
    }
}

配置完成后重启Nginx服务生效。

额外提示:单入口模式

如果你的项目是基于框架开发的,推荐用单入口(比如index.php)统一处理请求,把hello.php的逻辑整合到入口文件中,再通过路由规则映射到对应的业务,这种方式更易于维护。

2. 将指定PHP URL转换为不带文件名的路径

这个需求可以通过重定向+重写组合实现,确保不管用户输入哪个地址,最终地址栏都显示干净的路径:

Apache补充配置

在之前的.htaccess里再加一条规则,把直接访问hello.php的请求301重定向到dist/:

# 永久重定向hello.php到dist/根路径
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)hello\.php\ HTTP/
RewriteRule ^(.*)hello\.php$ /$1 [R=301,L]

Nginx补充配置

在对应的location块里添加重定向规则:

# 永久重定向hello.php到dist/根路径
location = /project_Folder/dist/hello.php {
    return 301 /project_Folder/dist/;
}

这样设置后,用户访问http://11.111.11.11/project_Folder/dist/hello.php会自动跳转到http://11.111.11.11/project_Folder/dist/,且服务器实际加载的是hello.php的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:57:37