如何在apache的.htaccess中重写后缀的子域

qrjkbowd  于 2023-05-18  发布在  Apache
关注(0)|答案(1)|浏览(122)

我在.htaccess上使用以下代码为子域名“API”创建了一个别名:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteCond %{HTTP_HOST} ^api\. [NC]
RewriteRule ^app/ /assets/api/app/index.php [L,NC,QSA]

它通过以下URL运行良好:

https://api.mysite.com/assets/api/app

但我需要添加一个后缀/app/到地址重写api.mysite.com/app//assets/api/app/index.php
之后,我将使用其他后缀重写例如:
示例01(后缀app):

  • 产地:api.mysite.com/app/carts
  • 目的地:/assets/api/images/index.php

只接收推车
示例02(后缀图像):

  • 产地:api.mysite.com/images/banner/21
  • 目的地:/assets/api/images/index.php

仅接收banner/21
示例03(后缀lib):

  • 来源:api.mysite.com/lib/lib.js
  • 目的地:/assets/api/libs/index.php

仅接收carousel/21
所有的上下文都将在我的restful API中使用。

api.mysite.com/app/carts

我的restful API正在获取路径app/carts,但我只想将/carts传递给index.php
服务器的根目录是:

/home/storage/c/bc/69/mysite

我希望服务器忽略以下后缀:app,images e lib.有人知道怎么做吗?

Ps.:我让我的.htaccess作为一个魅力工作,而直接被www.mysite.com/asssets/api/app/carts访问,这是存储在/home/storage/c/bc/69/mysite/assets/API中的.htaccess代码:
RewriteRule ^(^app/){1}/assets/api/app/index. php [NC,QSA]

up9lanfz

up9lanfz1#

您可以使用此规则来处理此重写:

RewriteCond %{HTTP_HOST} ^api\. [NC]
RewriteRule ^app/ /assets/api/app/index.php [L,NC,QSA]

相关问题