Url 在 LAMP 服务器上用 post 数据重写

Url rewrite on LAMP server with post data

我正在尝试在我的 LAMP 服务器上设置 URL 重写规则集,并且所有 GET 请求都正常工作,但是一旦我提交 posted形成所有post-数据消失。 如果我将表格更改为 GET,那么我将获得所有内容(在 URL 长度的限制内)。

为了保持干净 URL 我真的更愿意使用 URL 重写选项而不是冗长丑陋的 URL ;-)

我的 .htaccess 文件看起来像这样(由 googled 个结果制成):

RewriteEngine On                                                                                     # Turn on the rewriting engine
RewriteRule    ^admin/module/([A-Za-z0-9-_]+)?$      admin.php?page=module&mod=    [NC,QSA,L]      # Process admin requests
RewriteRule    ^admin/([A-Za-z0-9-_]+)?$             admin.php?page=               [NC,QSA,L]      # Process admin requests
RewriteRule    ^admin/?$                             admin.php                       [NC,QSA,L]      # Process admin requests
RewriteRule    ^/?$                                  index.php                       [NC,QSA,L]      # Handle all requests

我试图通过删除 QSA 和/或 NC 部分来更改 [NC,QSA,L] 部分,但没有成功

我的 HTML 表单标签如下所示:

<form action="/admin/setup" enctype="text/plain" method="post" >

我已经尝试 google 这个问题但没有结果...无论如何都没有任何有意义的结果,所以如果您需要我提供更多信息,请告诉我。

URL 重写对我来说还是有些陌生,所以请对你的答案做一些解释

提前致谢:-)

---- 编辑 2019-07-12 ----

Linux 版本为:

Linux X-gene 4.9.0-9-arm64 #1 SMP Debian 4.9.168-1 (2019-04-12) aarch64 GNU/Linux

PHP 版本为:

PHP 7.0.33-0+deb9u3 (cli) (built: Mar 8 2019 10:01:24) ( NTS )

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies

Apache 版本是:

Server version: Apache/2.4.25 (Debian)

Server built: 2019-04-02T19:05:13

...使用这些加载的模块(PHP信息):

core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_env mod_filter util_ldap mod_mime prefork mod_negotiation mod_php7 mod_proxy mod_proxy_connect mod_proxy_html mod_proxy_http mod_reqtimeout mod_rewrite mod_setenvif mod_socache_shmcb mod_ssl mod_status mod_xml2enc

请允许我用 [face_palm] + DOH 来回答这个问题!

我确实重写了代码以不使用 url 重写,但无论如何得到了相同的结果。然后我查看了 from 的 enctype,发现默认的 enctype 应该是

application/x-www-form-urlencoded

text/plain

就像问题一样,只要我插入新的 enctype 就没有问题。

我不会将代码改回使用 url 重写,但再次......请允许我承认一个愚蠢的错误,并感谢所有可能一直在努力研究它的人找到解决方案