.htaccess 将api路由重定向到其他子文件夹

wwtsj6pe  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(174)

我的服务器有一个前端和一个后端,如下所示:

·
|__www
  |__frontend
     |__public
  |__backend
     |__public

我想让我的所有路由指向前端,除了前缀为***/api***的路由。
例如:

domain.com/foo points to the frontend  
domain.com/api/foo points to the backend

我尝试过使用apache vhost和.htaccess

RewriteEngine On

RewriteRule ^api(/.*)?$ /backend/public$1 [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond ^ /frontend/public [L]

我怎么才能让它工作呢?

bjp0bcyl

bjp0bcyl1#

您需要一个规则来避免两个文件夹(frontendbackend)同时被重写。

RewriteEngine On

# Don't rewrite frontend nor backend
RewriteRule ^(frontend|backend)(/.*)?$ - [L,NC]

# /api/foo to /backend/public/foo
RewriteRule ^api(/.*)?$ /backend/public$1 [L,NC]

# not a file, /foo to /frontend/public/foo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /frontend/public/$1 [L]

相关问题