reactjs - 路由api时.htaccess 500内部服务器错误
问题描述
我目前在本地的 apache 服务器上运行 php,带有 React 前端。
这就是我当前.htaccess
的布局方式:
Options -MultiViews
RewriteEngine On
RewriteRule ^api/(.*)$ api/$1\.php [L]
RewriteCond %{REQUEST_URI} !^/api.*?
RewriteRule ^ index.html [QSA,L]
最根本的条件是路由可以在我的 React 应用程序中工作。然后我将生产版本复制到我的 htdocs 中。
路由有效,但是,我希望能够在不使用文件扩展名的情况下/api
调用目录中的 .php 文件。所以我希望之后的任何内容都被重定向到输入的内容,然后是./api/
.php
例如/api/authentication
会去/api/authentication.php
,/api/register
会去/api/register.php
,等等。
使用此当前设置,我在向/api/authentication
etc发出请求时收到 500 内部服务器错误。
我的.htaccess
文件有问题吗?
解决方案
您的第一条规则是在匹配时循环.*
。您可以使用:
Options -MultiViews
RewriteEngine On
RewriteRule ^index\.html$ - [L,NC]
RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteRule ^api/(.+)$ api/$1.php [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^api index.html [L,NC]
RewriteCond %{REQUEST_URI} !\.php$ [NC]
当 URI 以 . 结尾时将跳过重写.php
。
推荐阅读
- node.js - NodeJS 和 Express 后端的多队列系统设计
- javascript - 使用 Vanilla JS(Chrome 扩展),您如何检测 React 页面是否已完全加载其所有组件?
- mongodb - Mongodb:更新数组内的对象
- java - H2文件模式还是TCP模式更稳定?
- html - CSS 网格布局调整大小
- python - 如何使用 tf 和 keras 为 U_Net 分割模型保存测试数据集中每个图像的名称?
- python - 对列表中的所有列表进行排序
- javascript - 仅当使用反应和打字稿单击其中一个复选框时,如何应用过滤器?
- msbuild - MSBuild 找不到 DLL
- kubernetes - 是否可以使用不同的服务帐户运行 sidecar