apache - Slim 3 - 使用重写规则从 url 中删除子目录
问题描述
我在 A2Hosting 上有一个共享主机,我最近将我的主域public_html/
从public_html/subdir/
这是结构:
/public_html
/subdir(site files of main domain)
/api
index.php
我当前的 htaccess(public_html) 是:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.
RewriteRule ^(.*)$ /subdir/$1 [L]
当我之前调用我的 APi 时:domain.com/api/
但现在是:domain.com/subdir/api/
我的 htaccessapi
是:
RewriteEngine On
RewriteBase /api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
如何删除 url 中的“子目录”以保持我的 api 像以前一样?但是仍然使用我当前的 htaccess 将根指向我的子目录?
谢谢
解决方案
/api
一种方法是从根目录中的主 .htaccess 文件重写,如下所示:
RewriteEngine On
RewriteBase /
RewriteRule ^api/(.*)$ ../subdir/api/$1 [R,L,QSA]
新 /subdir/api 文件夹中的 .htaccess 文件可以保持原样。只有 RewriteBase 需要调整。
/api
如果出于某种原因保留它,另一种方法是从以前的文件夹重写:
RewriteEngine On
RewriteBase /api
RewriteRule ^(.*)$ ../subdir/api/$1 [L]
推荐阅读
- oracle - Oracle 数据库 - 根据在另一张表中的插入触发在一张表中随机更新和分配
- html - 仅在引导程序 5 中使用 1 个 div 时如何将第二个浮动标签添加到输入
- javascript - 如何显示对表的搜索引用?
- postgresql - 根据 postgres 中的单元格值进行查询
- vb.net - 如何在按下按钮时尝试验证文本框?
- c# - 如何使用从 Web.Api 到 Devextreme Angular 的 List<>
- mysql - 全文索引与mysql上的列列表不匹配
- postgresql - PostgreSql 查询计划项目集节点
- call - AT 命令在另一个通话中获取来电号码
- python - 您可以将python服务器套接字绑定到公共IP吗?