gpt4 book ai didi

.htaccess - 如何在共享主机上部署 Symfony2?

转载 作者:行者123 更新时间:2023-12-03 21:24:07 25 4
gpt4 key购买 nike

我想从这个 url http://www.sample.com/amateur1/web/app.php 访问我在生产环境 ( http://www.sample.com/amateur1 ) 中的 symfony 应用程序.

为此,我将 .htacces 文件移至 http://www.sample.com/amateur1/.htaccess包含以下内容:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /web/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

但是当我去 http://www.sample.com/amateur1显示 404 错误,并且 prod.log 未写入。

我也用过 RewriteBase /amateur1/web/因为我不知道RewriteBase路径是相对于服务器的DocumentRoot,还是来自.htaccess文件所在的路径。也试过 /amateur1/amateur1/作为 RewriteBase 由于这个答案 Symfony2: How to deploy in subdirectory (Apache)

通过三个尝试,“异常”页面显示为无样式,并且未加载任何图像。但随后我在 prod.log 文件中收到以下错误:
[2013-02-15 02:06:47] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] []

我做错了什么?

最佳答案

在您的配置中,apache 使用 public_html作为文档根

如果 Symfony2 安装在目录 /home/u105859802/public_html/amateur1 ,要服务的 Symfony 公共(public)目录是 /home/u105859802/public_html/amateur1/web/
你应该使用

RewriteBase /amateur1/web/

但请注意,这并不安全
你必须保护你的 symfony 目录! (配置可访问)

你为什么不试着把你的 symfony 文件移动到你的私有(private)区域呢?
您可以将 Symfony 网络目录重命名为 public_html
how to do that in documentation cookbook

因此,我的推荐结构如下所示:
  • /home/u105859802/
  • 供应商
  • 应用
  • 垃圾桶
  • public_html (在 symfony2 中默认为 web) <- 唯一的公共(public)目录
  • 关于.htaccess - 如何在共享主机上部署 Symfony2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14889913/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com