首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用子文件夹的.htaccess根url和根文件夹的特定url

使用子文件夹的.htaccess根url和根文件夹的特定url
EN

Stack Overflow用户
提问于 2019-04-02 10:34:09
回答 1查看 346关注 0票数 0

我的设置很奇怪,不用说,我能改变的东西特别有限。目前,对我来说最容易修改的是服务器的.htaccess文件。当前目录设置如下所示:

/是wordpress的安装版本。

/front-end是一个使用wordpress安装REST API来获取数据的react网站

我正在尝试获取它,以便当我访问example.com时,它提供来自/front-end的内容,但所有对/dashboard的请求都是从根目录提供服务的。

例如,这些URL将执行以下操作:

//contact将指向front-end目录中的index.html文件(react-router将拾取/contact)

/dashboard/wp-admin/dashboard/wp-json/menus会让路由目录中的wordpress接管。(这些将始终启动/dashboard)

我试图实现的目标是可行的吗?

我从这个开始,但是我不确定如何忽略/dashboard路由

代码语言:javascript
复制
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-s
RewriteCond %{DOCUMENT_ROOT}/front-end/%{REQUEST_URI} -s
RewriteRule . /front-end/index.html [L]
EN

回答 1

Stack Overflow用户

发布于 2019-04-03 04:03:01

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^/?dashboard/(.*)$ /$1?wordpress=true [L,NC]
RewriteCond %{QUERY_STRING} !^.*wordpress=true.*$ [NC]
RewriteCond %{REQUEST_URI} !^/?front\-end.*$ [NC]
RewriteRule ^(.*)$ front-end/$1 [L,NC]

  • 在上面的规则中,我们首先检查我们的请求中是否有dashboard。如果是,我们故意附加一个查询字符串wordpress=true,以避免与您的react文件夹混淆,并遇到太多重定向的问题。
  • 通过这种方式,我们也知道当前的请求是针对wordpress的,后续重写规则不应触及它。
  • 在第二个重写规则中,我们检查是否有wordpress=true的条件,看看这个URL中是否还没有front-end (也适用于内部路由,不需要显式指定)。如果它通过了两个测试,我们会将它重定向到您的react front-end,否则我们会让它按原样执行。
  • 附加!^/?front\-end.*$的原因是为了避免无限的内部重定向到它自己。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55466137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档