我正在构建一个Web应用程序和一个API后端。它们都位于同一文件夹中。
它是这样的:
- /root
- /app
- index.html
- main.js
- ...
- /api
- /public
- ...
- .htaccess
两者都将在同一域中托管,因此我需要使用Apache进行一些URL重写以遵循以下规则:
http://domain/api/$1
应该重写为/root/api/public/$1
和http://domain/xxxx
至/root/app/index.html
我已经尝试使用以下配置:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$
RewriteRule !^/ /app/index.html [L]
RewriteCond %{REQUEST_URI} ^/api/(.*)$
RewriteRule ^api/(.*)$ /api/public/%{REQUEST_URI} [L]
</IfModule>
这是行不通的,我不确定这样做的正确方法。
有一些错误:当我尝试转到http://domain/api
时,我被重定向到http://domain/api/public/api
。
http://domain/api/anything
正常工作,但http://domain/anything
无效。只有http://domain
发送index.html
文件。
有什么想法吗?