【问题标题】:Symfony use wrong domain to generate absolute URLSymfony 使用错误的域来生成绝对 URL
【发布时间】:2017-12-10 11:32:53
【问题描述】:

我目前正在使用 BazingaHateoasBundle 和 Symfony 2.7 构建 Hal Hateoas RESTful API

这是我的配置文件:

MyBundle\Entity\MyEntity:
  relations:
    - rel: self
      href:
        route: get_myentity
        parameters:
          id: expr(object.getId())
        absolute: true

在本地,我有一个带有虚拟主机的 apache,我的回答是正确的:

{
    "id":1,
    "_links": {
        "self": {
            "href": "http://dev.myvhost/api/myentity/1"
        }
}

在我的开发服务器中,我有这样的东西:

{
    "id":1,
    "_links": {
        "self": {
            "href": "http://my-machine-name/api/myentity/1"
        }
}

我不想要my-machine-name,而是想要my-server-name.com

我的服务器 Apache 配置如下所示:

ServerName my-server-name.com
Alias "/api" "/var/www/api/web"

<VirtualHost *:80>
    <Directory /var/www/api/web>
        AllowOverride None
        Require all granted
        Allow from All

        <IfModule mod_rewrite.c>
           Options -MultiViews
           RewriteEngine On
           RewriteCond %{REQUEST_FILENAME} !-f
           RewriteRule ^(.*)$ /api/app.php [QSA,L]
        </IfModule>
    </Directory>

    <Directory /var/www/api/web/bundles>
        <IfModule mod_rewrite.c>
            RewriteEngine Off
        </IfModule>
    </Directory>
    ErrorLog /var/log/httpd/api_error.log
    CustomLog /var/log/httpd/api_access.log combined
</VirtualHost>

有没有办法配置 Symfony 以便我可以直接设置主机?

【问题讨论】:

    标签: rest symfony hateoas


    【解决方案1】:

    我认为您在这里遗漏了一步。那就是您需要将 my-server-name.com 添加到(系统的)主机文件中。

    这是关于该主题的另一个有用链接:Symfony 2 on virtual hosts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 2021-12-05
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多