我正在尝试在我的LAMP服务器上设置URL重写规则集,并且所有GET请求均应正常工作,但是一旦我提交了已发布的表单,所有的后发布数据都会消失。 如果我将表单更改为GET,那么我将得到所有内容(在URL长度的限制内)。
要保持干净的URL,我真的更希望使用URL重写选项,而不要使用冗长的URL;-)
我的.htaccess文件如下所示(由Google搜索结果制成):
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^admin/module/([A-Za-z0-9-_]+)?$ admin.php?page=module&mod=$1 [NC,QSA,L] # Process admin requests
RewriteRule ^admin/([A-Za-z0-9-_]+)?$ admin.php?page=$1 [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
我试图通过删除[NC,QSA,L]
和/或QSA
部分来改变NC
部分,但是没有运气
我的HTML表单标签如下:
<form action="/admin/setup" enctype="text/plain" method="post" >
我试图用谷歌搜索问题,没有结果……没有任何意义的结果,因此,如果您需要我提供更多信息,请告诉我。
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)(内置:2019年3月8日10:01:24)(NTS)
版权所有(c)1997-2017 The PHP Group
Zend Engine v3.0.0,版权所有(c)1998-2017 Zend Technologies with Zend OPcache v7.0.33-0 + deb9u3,版权所有(c)1999-2017,作者Zend 技术
Apache版本为:
服务器版本:Apache / 2.4.25(Debian)
服务器内置:2019-04-02T19:05:13
...带有这些已加载的模块(PHPinfo):
核心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
答案 0 :(得分:0)
允许我承认以[face_palm] + DOH回答这个问题!
我确实重写了代码以不使用url重写,但是无论如何还是得到了相同的结果。然后我查看了from的enctype,发现默认的enctype应该是
application / x-www-form-urlencoded
和不
文本/纯文本
就像在问题中一样,当我插入新的enctype时就没有问题。
我不会将代码改回以使用url重写,但是...再次允许我承认一个愚蠢的错误,并感谢所有可能一直在努力寻找解决方案的人>