首页 > 解决方案 > XAMPP Apache 服务器为 REST API 发出不需要的 301 重定向

问题描述

GET 和 POST 请求,例如“ http://localhost/api/inquiry ”被 301 重定向到“ http://localhost/api/inquiry/ ”(注意添加斜杠)

我不知道为什么,但非常想让它停止!

GET ' http://localhost/api/inquiry/7 ' 按预期执行(NO 301 重定向

XAMPP Apache/2.4.43 (Win64) OpenSSL/1.1.1f PHP/7.4.4

.HTACCESS

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule api/inquiry/(\d+)$ api/inquiryController.php?id=$1 [QSA,NC,L]

RewriteRule api/inquiry$ api/inquiryController.php [NC,L]

</IfModule>

错误日志

[Thu Apr 30 09:17:16.707754 2020] [mpm_winnt:notice] [pid 18500:tid 728] AH00354: Child: Starting 150 worker threads.
[Thu Apr 30 09:17:23.684722 2020] [rewrite:trace3] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] strip per-dir prefix: C:/xampp/htdocs/api/inquiry -> api/inquiry
[Thu Apr 30 09:17:23.684722 2020] [rewrite:trace3] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] applying pattern 'api/inquiry/(\\d+)$' to uri 'api/inquiry'
[Thu Apr 30 09:17:23.684722 2020] [rewrite:trace3] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] strip per-dir prefix: C:/xampp/htdocs/api/inquiry -> api/inquiry
[Thu Apr 30 09:17:23.684722 2020] [rewrite:trace3] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] applying pattern 'api/inquiry$' to uri 'api/inquiry'
[Thu Apr 30 09:17:23.684722 2020] [rewrite:trace2] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] rewrite 'api/inquiry' -> 'api/inquiryController.php'
[Thu Apr 30 09:17:23.685722 2020] [rewrite:trace3] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] add per-dir prefix: api/inquiryController.php -> C:/xampp/htdocs/api/inquiryController.php
[Thu Apr 30 09:17:23.685722 2020] [rewrite:trace2] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] strip document_root prefix: C:/xampp/htdocs/api/inquiryController.php -> /api/inquiryController.php
[Thu Apr 30 09:17:23.685722 2020] [rewrite:trace1] [pid 18500:tid 1892] mod_rewrite.c(483): [client ::1:62841] ::1 - - [localhost/sid#25a54c39968][rid#25a57648a60/initial] [perdir C:/xampp/htdocs/] internal redirect with /api/inquiryController.php [INTERNAL REDIRECT]

访问日志

::1 - - [30/Apr/2020:09:17:23 -0400] "GET /api/inquiry HTTP/1.1" 301 336 "-" "PostmanRuntime/7.24.1"

标签: apache.htaccessmod-rewrite

解决方案


似乎可以通过将以下内容添加到 .htaccess 来解决;将继续测试并报告任何副作用。

<IfModule mod_dir.c>

DirectorySlash Off

</IfModule>

推荐阅读