Htaccess规则用于angular管理和单独的API区域


htaccess rules for angular admin and separate api areas?

我的。htaccess文件无法为我的Laravel和Angular应用正确路由请求。

api
    # Laravel api here
    public/
        ...
public_html/
    .htaccess
    admin/
        index.html
    front/
        index.html

我需要一些帮助来设置一个适当的。htaccess路由基于我正在做的三个域调用:

api.domain.com > routes to /api/public
admin.domain.com > routes to /admin/index.html
domain.com > routes to /front/index.html
有谁能帮我一下吗?一件事是原始路由应该保持不变,admin.domain.com应该保持不变即使它得到了子admin/文件夹

下面将发送除文件外的所有url,并在顶部排除。请测试。

RewriteEngine On
RewriteBase   /
#If static don't change anything and go direct
RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteRule '.(ttf|svg|otf|png|gif|jpeg|jpg|ico|swf|css|js|html|htm|woff)(('?.*)|)$ - [L,NC]

RewriteCond %{HTTP_HOST} admin.domain.com
RewriteRule .* /admin/index.html [QSA,L,NC]
RewriteCond %{HTTP_HOST} domain.com
RewriteRule .* /front/index.html [QSA,L,NC]
RewriteCond %{HTTP_HOST} api.domain.com
RewriteRule .* /api/public/index.php [QSA,L,NC]

我不认为。htaccess是正确的方式,除非你是在一个不允许你创建vhost的共享主机上。

下面是一个vhost配置示例:
<VirtualHost *:80>
    DocumentRoot /var/www/public_html/front/
    ServerName domain.com
    FallbackResource /index.html
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/public_html/admin/
    ServerName admin.domain.com
    FallbackResource /index.html
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/api/public/
    ServerName api.domain.com
    FallbackResource /index.php
</VirtualHost>