角度管理和单独的api区域的htaccess规则?

时间:2014-08-19 21:26:01

标签: php angularjs .htaccess mod-rewrite

我无法让我的.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/文件夹

2 个答案:

答案 0 :(得分:2)

以下内容将发送除文件之外的所有网址,并排除在顶部。请测试。

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]

答案 1 :(得分:1)

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

以下是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>