【问题标题】:Symfony .htaccessSymfony .htaccess
【发布时间】:2016-03-30 03:32:01
【问题描述】:

我在 hostgator 中为网站配置了一个测试文件夹,到目前为止,我在 wordpress、magento、joomla 等一些平面格式中没有任何问题,我什至没有更改 .htaccess 中的任何设置以使其运行。最近,我正在做一个 symfony2 项目,并将我的测试应用程序上传到我创建的测试文件夹中。这就是我创建测试文件夹的方式

  mywebsite.com/tests/wordpress_site(no problem)
  mywebsite.com/tests/joomla_site(no problem)
  mywebsite.com/tests/symfony2_site(403 forbidden error)

在我的 WAMP 中,我可以访问我的 symfony 项目

  localhost/symfony_site/web/

我没有接触 .htaccess,因为这只是本地机器上的一个测试站点。 您将如何在此设置中配置 symfony2 项目?

  mywebsite.com/tests/symfony_site

【问题讨论】:

    标签: .htaccess symfony


    【解决方案1】:

    在子文件夹中安装 symfony 时几乎不可能创建干净的 Urls...

    对于 Apache,更好的解决方案是使用具有 tests/symfony_site/web 作为 DocumentRoot 的 VirtualHost,并使用内置的 .htaccess 文件(它使用 url 重写模块,或者如果它不可用,则使用 302重定向到 app.php/)

    但是如果你不能给你的服务器添加一个虚拟主机,那就很难了……

    另一种方法是在 tests/symfony_site 添加一个 .htaccess 并放入 DirectoryIndex: web/app.php (https://httpd.apache.org/docs/current/mod/mod_dir.html)

    所以你可以拥有干净的 URL...但是要小心这个解决方案:路由器解析的 url 相对于你的站点根目录(而不是 symfony root ...)所以路由器可能会丢失...(例如,如果您有一个名为/test的root,您应该将其重命名为/tests/symfony_site/test...对于资产也是如此,您必须添加站点目录, 否则会返回 404 错误...

    在我的情况下,我只是使用 web 文件夹中现有的 .htaccess(或者我用 DirectoryIndex 创建一个新的),所以我的应用程序可以使用像 mywebsite.com/tests/symfony_site/web/ 这样的 URL

    希望对你有帮助,

    文森特

    【讨论】:

      【解决方案2】:

      您可以尝试在 .htaccess 文件中输入以下代码到 symfony 根文件夹

      RewriteEngine On
      RewriteBase /
      
      RewriteCond $1 !^(img|files|images|favicon.ico|css|js|robots\.txt)
      RewriteRule ^(.*)$ web/$1 [L]
      
      RewriteCond %{HTTP_HOST} host.com
      RewriteCond %{REQUEST_URI} !web/
      RewriteRule ^(.*)$ web/$1 [L]
      

      【讨论】:

        猜你喜欢
        • 2011-07-18
        • 2020-07-14
        • 2015-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-08-22
        • 1970-01-01
        • 1970-01-01
        • 2011-08-13
        相关资源
        最近更新 更多