link Symfony2 API 前端的好方法?
A good way to link front-end to Symfony2 API?
我有一个 Symfony2 API,我想从单页前端应用程序调用它。我当前的 url 指向 Symfony 的 /web 目录。所以我可以通过 app.php 或 app_dev.php 调用 API 槽。行得通。
现在我想将我的前端应用程序耦合到 Symfony 后端。这样做的好方法是什么?当然,我搜索了 .htaccess 重写。
例如,将 url 中指向 */api 的所有请求重定向到 Symfony 的 app.php 和所有 url 请求不包含前端应用程序的 /api(/web 目录中的符号 link,指向其中包含前端应用程序的供应商映射)。
我目前解决了它改变(默认 Symfony 2.6).htaccess:
# (remove this line!) DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}:: ^(/.+)/(.*)::$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/ [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/ [L]
# Redirect everything else to another dir, possibly front-end app.
RewriteRule .? %{ENV:BASE}/myfrontend/ [R,L,QSA,NE]
</IfModule>
重要的是 [R,...]
由于这可能是错误的,我希望仍然有人可以提供有关如何正确执行此操作的提示。
我有一个 Symfony2 API,我想从单页前端应用程序调用它。我当前的 url 指向 Symfony 的 /web 目录。所以我可以通过 app.php 或 app_dev.php 调用 API 槽。行得通。
现在我想将我的前端应用程序耦合到 Symfony 后端。这样做的好方法是什么?当然,我搜索了 .htaccess 重写。
例如,将 url 中指向 */api 的所有请求重定向到 Symfony 的 app.php 和所有 url 请求不包含前端应用程序的 /api(/web 目录中的符号 link,指向其中包含前端应用程序的供应商映射)。
我目前解决了它改变(默认 Symfony 2.6).htaccess:
# (remove this line!) DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}:: ^(/.+)/(.*)::$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/ [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/ [L]
# Redirect everything else to another dir, possibly front-end app.
RewriteRule .? %{ENV:BASE}/myfrontend/ [R,L,QSA,NE]
</IfModule>
重要的是 [R,...]
由于这可能是错误的,我希望仍然有人可以提供有关如何正确执行此操作的提示。