繁体   English   中英

我的.htaccess文件似乎是用GET重写了我的URL,而不是维护POST

[英]My .htaccess seems to rewrite my URL in GET, instead of maintaining POST

我有以下.htaccess文件:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule ^.*$ /dispatcher.php

我的目标是所有请求都将通过我的调度程序(因为我正在为自己编写一个伪API,所以我的调用/ URL只会执行操作,而不会检索太多文件,数据等)。

不幸的是,当我通过POST方法调用站点时,调度程序告诉我(通过$_SERVER['REQUEST_METHOD'] ),我的请求是GET request ,所有我的POST data都丢失了。

如何将请求方法保持为POST

更新 :通过浏览器检查我的请求响应后, 未找到404页面 ,但是该页面仍在正确显示。 也许因为404重定向将方法设置为GET? 但是,仍未进一步了解会导致这种情况的原因。

尽管404响应很奇怪,但我知道我的.htaccess是有效的,因为注释掉了重写规则,如果我要使用基本目录的子目录调用URL,它将通过正确的404页面(正确的信息显示在这一页)。 但是,使用重写规则,响应将返回404状态,但页面显示正确(请求方法除外)。

更新 :按照HamZa的说法,没有更多的代码需要显示。 我有一个简单的表单,该表单通过POST请求调用服务器,以便(尝试)触发POST方法。 我认为问题出在我的htaccess不能正确重写URL,因为调用我的基本URL会正确调用GET和POST,但是如果我添加其他URL数据(例如domain.com//,其中where模块和操作是我传递给服务器以调用正确的模块和函数的数据),它将返回404响应状态,但仍带有正确的数据。

尝试像这样在您的.htaccess上添加ErrorDocument 404 default行,以禁用404的任何自定义错误处理:

ErrorDocument 404 default

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule !^dispatcher\.php$ dispatcher.php [L,NC]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM