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

Symfony5子目录项目如何去除URL中的/public访问路径?

前提检查

先确认两项服务器配置是否满足:

  • Apache已启用mod_rewrite模块
  • 站点Apache配置中,public_html目录对应的AllowOverride参数设置为All,否则.htaccess规则不会生效

步骤1:更新HELP目录下的.htaccess规则

将.htaccess文件放在public_html/HELP/根目录(不要放在public子目录内),替换原有规则为以下内容:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # 配置子目录重写基路径
    RewriteBase /HELP/
    # 避免public路径循环重写
    RewriteRule ^public/ - [L]
    # 静态文件直接返回,不存在的请求转发到public目录
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

步骤2:适配Symfony子目录配置

修改Symfony项目配置,避免路由、静态资源路径生成错误:

  1. 打开config/packages/framework.yaml,添加根路径配置:
framework:
    # 匹配部署的子目录前缀
    base_uri: '/HELP'
  1. 若使用Webpack Encore打包静态资源,修改webpack.config.js配置:
Encore
    // 其他原有配置保持不变
    .setPublicPath('/HELP/build')
    .setManifestKeyPrefix('build/')

步骤3:清理Symfony缓存

部署完配置后,执行生产环境缓存清理命令生效:
php bin/console cache:clear --env=prod

完成以上操作后即可直接通过example.com/HELP访问项目,无需拼接/public路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 11:06:11