.htaccess在另一个子文件夹的url中提供子文件夹

时间:2015-06-10 10:35:37

标签: apache .htaccess mod-rewrite

我的文件夹结构如下所示:

    /.htaccess
    /admin
    /admin/api
    /admin/admin
    index.html (Angular JS app)

所以我需要做以下重写:

  1. /admin/admin
  2. 服务/admin
  3. /admin/api/*(不重写)
  4. 服务/admin/api/*
  5. /{everything else}
  6. 投放index.html

    如何在root .htaccess中执行此操作?

    到目前为止,我已经:

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !index
        RewriteRule (.*) index.html [L]
    </IfModule>
    

    但是这并没有处理/admin/admin/admin的重写。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteRule ^admin/?$ admin/admin [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(index|admin)
    RewriteRule ^ index.html [L]
</IfModule>

这假设/admin/文件夹中没有.htaccess。如果有,那么在那里使用这个规则:

RewriteEngine On
RewriteBase /admin/

RewriteRule ^/?$ admin [L]