什么是正确的设置一个.htaccess文件的无头WordPress和React网站

db2dz4w8  于 2022-11-16  发布在  WordPress
关注(0)|答案(1)|浏览(112)

我有一个WordPress站点,它有一个无头的React前端。使用WordPress在安装时设置的默认.htaccess文件,站点不能正确处理对根以外的任何页面的请求。这些请求完全忽略了React。我修改了.htaccess,将所有请求指向index.html文件,如下所示...

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

这样就可以很好地加载React站点,但是对于任何api请求wp-json或者更重要的是graphql,它也会失败。这意味着页面会加载,但是内容基本上是不存在的。我如何设置.htaccess文件,以允许对这些api端点的请求,而不是允许对index.html的初始请求呢?

xnifntxz

xnifntxz1#

到目前为止,这似乎是有效的...

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^graphql(.*)$ index.php?url=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

从这个答案中窃取了一部分... How to redirect all API requests using .htaccess, while keeping asset requests intact?
我不确定是否需要url=$1部分,因为我没有在其他地方使用它,但我不太擅长正则表达式,至少请求得到了正确的处理。

相关问题