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

Apache环境下PHP Web应用URL简化:移除public及页面路径

解决方案:Apache下PHP项目URL简化配置

前提条件

首先确保Apache已启用mod_rewrite模块,并且目标目录的AllowOverride设置为All:

  1. 打开Apache的httpd.conf配置文件,取消LoadModule rewrite_module modules/mod_rewrite.so前的注释(去掉#)。
  2. 找到对应本地站点根目录的<Directory>块(例如C:/xampp/htdocs或你的项目所在路径),将AllowOverride None改为AllowOverride All。
  3. 重启Apache服务。

问题1:去掉URL中的public目录

在CALCULATOR项目根目录(即http://localhost/CALCULATOR对应的物理目录)创建.htaccess文件,添加以下规则:

RewriteEngine On

# 仅当请求的文件/目录不存在时,转发到public目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/$1 [L]

这样访问http://localhost/CALCULATOR会自动映射到public目录下的内容,无需修改原目录结构。


问题2:简化页面URL(如/about-us替代/src/pages/about-us.php)

在CALCULATOR/public目录下创建或修改.htaccess文件,添加以下规则:

RewriteEngine On

# 将短路径映射到src/pages下的PHP文件
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9-]+)$ ../src/pages/$1.php [L]

规则说明:正则^([a-z0-9-]+)$匹配仅包含小写字母、数字和连字符的路径(如about-us、contact-us),自动映射到../src/pages/目录下对应的.php文件。


测试与注意事项

  • 修改.htaccess后,清空浏览器缓存再测试,避免旧缓存干扰。
  • 如果public目录下有实际存在的文件或子目录,规则会优先访问这些真实资源,不会触发重写。
  • 若需要支持更多字符的页面名称,可调整正则表达式(例如添加下划线_则改为^([a-z0-9-_]+)$)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:24:53