亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

.htaccess 將 REQUEST_METHOD 更改為 GET - 如果 URL

.htaccess 將 REQUEST_METHOD 更改為 GET - 如果 URL

PHP
慕桂英3389331 2023-05-12 16:08:19
我正在構建一個 api,例如。https://example.com/my-api/api.php然后我使用以下 .htaccess 文件使 api 可以通過https://example.com/my-apiRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule (.*)$ api.php/$1/ [L,QSA]該文件有效,但是當我的 api 調用沒有以尾部斜杠結尾或設置了一些參數時,$_SERVER['REQUEST_METHOD'] 變為 GET。例子:POST https://example.com/my-api/foo #becomes GETPOST https://example.com/my-api/foo/ #stays POSTPOST https://example.com/my-api/foo?bar=1 #stays POSTPOST https://example.com/my-api/foo/bar #becomes GETPOST https://example.com/my-api/foo/bar/ #stays POSTPOST https://example.com/my-api/foo/bar?abc=1 #stays POST我怎樣才能改變這種行為(這是可取的)還是我應該通知這個 api 的用戶總是以尾部斜杠結束他們的調用?添加尾部斜杠后,api 將按預期工作。我主要通過 PostMan 測試了這種行為。
查看完整描述

1 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

這是因為您的 URI 中缺少指向真實目錄的斜杠。Apache 的mod_dir模塊為這些請求添加尾部斜杠并執行301重定向以產生另一個GET請求。


您可以禁用此行為,但出于安全原因禁用列出目錄內容的選項也很重要。


DirectorySlash Off

Options -Indexes


RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule (.*)$ api.php/$1/ [L,QSA]


查看完整回答
反對 回復 2023-05-12
  • 1 回答
  • 0 關注
  • 168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號