我有一个Symfony2 API,我想从单页前端应用程序调用它。我当前的url指向Symfony的/ web目录。所以我可以通过app.php或app_dev.php来调用API。这很有效。
现在我想将我的前端应用程序连接到Symfony后端。有什么好办法呢?当然我搜索了.htaccess重写。
例如,应该是将指向* / api的url中的所有请求重定向到Symfony的app.php以及所有不包含/ api到前端应用程序的url请求(符号链接在/ web目录指向包含前端应用程序的供应商地图。)
答案 0 :(得分:1)
我目前解决了它更改(默认Symfony 2.6).htaccess:
# (remove this line!) DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
# Instead of:
# (removed) RewriteRule .? %{ENV:BASE}/app.php [L]
# I did:
# Redirect everything with %url%/api to the Symfony2 font controller.
RewriteCond %{REQUEST_URI} api/
RewriteRule .? %{ENV:BASE}/app.php/$1 [L]
# Redirect everything else to another dir, possibly front-end app.
RewriteRule .? %{ENV:BASE}/myfrontend/$1 [R,L,QSA,NE]
</IfModule>
重要的是[R,...]
由于这可能是错误的,我希望有人仍然可以提供有关如何正确执行此操作的提示。