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 重写,但再次......请允许我承认一个愚蠢的错误,并感谢所有可能一直在努力研究它的人找到解决方案
我正在尝试在我的 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 重写,但再次......请允许我承认一个愚蠢的错误,并感谢所有可能一直在努力研究它的人找到解决方案