将所有流量转发到一个子文件夹,并将一个子文件夹转发到另一个子文件夹

时间:2019-04-03 13:05:16

标签: apache .htaccess mod-rewrite

这是服务器上文件夹逻辑的简化版本。

├── rest/
│   └── api/
│       ├── account
│       ├── posts
│       └── settings
├── src/
│   ├── index.html
|   ├── scripts.js
│   └── about/
|       └── index.html
└── public/
    ├── index.html
    ├── scripts.js
    └── about/
        └── index.html

服务器设置: Ubuntu 16.04 Apache 2

我要实现的目标是:

  • 访问/将显示来自/public/index.html的内容
  • 访问/about将显示来自/public/about/index.html的内容
  • 访问/api/account将显示来自/rest/api/account的内容

这是我当前的.htaccess设置

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ /public/$1 [L,NC]

这非常适合将/重定向到/public/index.html,但不能与api一起使用。

1 个答案:

答案 0 :(得分:2)

您不能这样做:

RewriteEngine On
RewriteBase /
RewriteRule ^(api/.*)$ /rest/$1 [L,NC]
RewriteRule ^(.*)$ /public/$1 [L,NC]