我的设置很奇怪,不用说我在改变方面特别有限。目前,我最容易改变的是服务器的.htaccess
文件。当前目录设置如下所示:
/
是一个wordpress安装
/front-end
是一个反应网站,它使用wordpress安装REST API来获取数据
我试图得到它,以便当我去example.com
时,它提供来自/front-end
的内容,但所有对/dashboard
的请求都是从根目录提供的。
例如,这些URL将执行以下操作:
/
和/contact
将指向index.html
目录中的front-end
文件(react-router将获取/contact
)
/dashboard/wp-admin
和/dashboard/wp-json/menus
会让路由目录中的wordpress接管。 (这些总是会启动/dashboard
)
是我试图实现可行的?
我有这个开始,但我不确定如何忽略/dashboard
路线
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-s
RewriteCond %{DOCUMENT_ROOT}/front-end/%{REQUEST_URI} -s
RewriteRule . /front-end/index.html [L]
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
(也适用于内部路由,无需明确指定)。如果它通过了两个测试,我们将它重定向到你的反应front-end
,否则我们让它按原样执行。!^/?front\-end.*$
的原因是为了避免无限的内部重定向到自身。