我非常努力地试图让IIS上的Symfony 3应用程序作为网站子目录。
IIS上的结构:
应用程序被称为pfc,它的poit到目录pfc / web,(IIS隐藏root,因为文件夹名称与app相同)
这是web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<add value="app_dev.php" />
</files>
</defaultDocument>
<rewrite>
<rules>
<clear />
<rule name="StaticFiles" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile"/>
</conditions>
<action type="Rewrite" url="{R:0}" logRewrittenUrl="true" />
</rule>
<rule name="Symfony 3" enabled="true" stopProcessing="true">
<match url=".?" ignoreCase="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="./app_dev.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
输入dev.erp.loc / Test2 / pfc最终得到:
像Symfony一样认为自己是一个根应用程序,而不是。我最好的拍摄是使用 router.request_context.base_url ,但它看起来只能在S2中使用。
现在我坚持我可以称之为中途解决方案
通过web.config中的评论重写部分,我被正确地重定向到了Identity Server,但在登录后我获得了:
为了修复它,我需要取消注释重写部分,使路由再次工作,但它仅适用于浏览器,使其处于此状态将导致&#34;找不到路由& #34;在另一个浏览器中。
在parameters.yml中修复子目录路由会很好,我会在部署脚本中填写,但如果没有其他方法我也可以编辑web.config。
答案 0 :(得分:0)
最近,我需要处理类似的问题,并且作为副作用,我解决了这个“问题”。我的URL 不带的斜杠为correct。问题是Chrome无法创建规范的网址格式,并且无法向终端请求 Symfony不需要解释