【发布时间】:2014-08-22 09:04:27
【问题描述】:
我已成功安装 URL 重写策略,我已将其包含在下面 (.htaccess):
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^rest/([\w\d~%.:_\/-]+)$ controllers/rest_api.php?params=$1&v=t [NC]
但是,它正在丢失 POST 数据。我已经看到其他问题通过将 FULL url 更改为相对 URL(我的是)或安装类似 MOD_PROXY 的东西来解决这个问题。但是,如果可能的话,我想保留它而不需要安装额外的 apache 模块。我也试过 [NC,L]。
有什么想法吗?重写功能正常,但我只是丢失了 POST 数据。但是,它将 POST 保留为 request_method。它还保留了标头,因为它通过了我正在构建的 API 的身份验证块。
【问题讨论】:
-
你在浏览器中看到了什么 URL,你想把它改写成什么?
-
我正在使用 PAW(我购买的一个 REST API 程序以方便使用),但我的意图是保持 URL 的重写(而不是重定向)。我把 {domain}/rest/queue/new.xml 放在了输出页面上(所以路由正常工作,我只是丢失了 POST 数据)。即使使用重写,我也确实有标题工作。有什么具体的我可以提供帮助的吗?
-
POST 数据不会在内部重写中丢失,如上所示。还有更多规则吗?
-
不。这就是整个 .htaccess 文件(也是唯一的 .htaccess 文件)。我确认该方法是使用 REQUEST_METHOD 产生“post”的 POST,但是当我执行 print_r($_POST) 时,我得到一个空数组。我执行 print_r($_REQUEST) 来获取所有 POST 和 GET(以防我使用的程序合并它们或其他东西),我只从重写规则(params 和 v)中获取两者。
-
我可以提供任何来自 phpinfo() 的值来提供帮助吗?
标签: php apache .htaccess mod-rewrite vps