【问题标题】:Missing POST and GET with Apache AliasApache Alias 缺少 POST 和 GET
【发布时间】:2019-06-26 02:15:10
【问题描述】:

我有一个 Symfony 项目,文件 index.php 位于 /var/www/public 中。

我只想允许使用虚拟generate 文件夹访问该网站,因此应始终像这样访问该网站:http://localhost/generate

http://localhost/ 应该只抛出 404。

我正在使用以下 Apache 配置,但在调试脚本时缺少 $_POST$_GET 全局变量(我正在从 Postman 发出 POST 请求)。当我将我的 Apache 配置重置为仅从根目录提供服务而没有任何别名时,它可以工作。发生了什么?

我没有在我的/var/www/public 文件夹中使用任何 .htaccess 文件。

Apache 配置:

<VirtualHost _default_:80>

      ServerAdmin webmaster@localhost

      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined

      <FilesMatch ".+(\.php)$">
         SetHandler "proxy:fcgi://127.0.0.1:9100/
      </FilesMatch>

      DocumentRoot "/var/www/public"

      Alias /generate /var/www/public
      <Location /generate>
          AllowOverride All
      </Location>

</VirtualHost>

【问题讨论】:

    标签: php apache symfony


    【解决方案1】:

    由于您使用的是 Symfony,您可以简单地为 /generate 定义路由,而为 / 定义任何内容

    routes.yaml

    Generate:
        path: /generate
        controller: ControllerNamespaceAndName::MethodName
    

    因为你在访问http://localhost/时没有使用/的路由定义,symfony的内核会抛出404

    【讨论】:

    • 我宁愿不为这个重定向安装路由组件,但如果没有人提供有效的 Apache 解决方案,这将是我最后的选择!
    • 我对 apache conf 很不满意,我无法以这种方式帮助你。让我们希望有人有更好的解决方案
    猜你喜欢
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2017-04-16
    • 2018-08-05
    • 2023-04-04
    • 2010-09-24
    相关资源
    最近更新 更多