有没有办法提交输入字段值而不在URL中获取其名称?
我使用带有GET方法的表单进行搜索,当我提交表单时,我会得到这样的结果:
/file/?inputname=value
我想这样做:
/file/value
否则:如果第一个解决方案无法实现,我怎样才能修改.htaccess以上述方式重写URL(我的意思是:/file/?inputname=value
),但请注意我在中使用了2个参数网址dir1/file/?inputname=value .
提前致谢
答案 0 :(得分:2)
试试这个:Solution Here
使用.htaccess,如下所示
RewriteEngine On
RewriteRule ^(.*)$ /index.php?url=$1 [L]
对于您网站上的用户,他们会看到并导航到这个:
http://example.com/value
但真正的页面会是这样的:
http://example.com/index.php?inputname=value
这一位[L]告诉服务器这是重写规则的最后一行并停止。
答案 1 :(得分:0)
将表单方法设置为发布
<form method="post" ...
并在PHP
文件中接收此类数据
$inputValue = $_POST['inputname'];
答案 2 :(得分:0)
首先是不可能的。
htaccess的:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
PHP
$url = rtrim($_GET['url'], '/');
$url = filter_var($url, FILTER_SANITIZE_URL);
$url = explode('/', $url);
$part1 = (isset($url[0]) ? $url[0] : null);
$part2 = (isset($url[1]) ? $url[1] : null);
$part3 = (isset($url[2]) ? $url[2] : null);
$part4 = (isset($url[3]) ? $url[3] : null);
$part5 = (isset($url[4]) ? $url[4] : null);
/*
$partN will contain the input after the URL.
If URL was http://foo.com/this/is/fun
$part1 = this
$part2 = is
$paer3 = fun
*/
答案 3 :(得分:0)
您必须使用发布方法。
注意:POST方法发送的数据通过HTTP标头,因此安全性取决于HTTP协议。通过使用安全HTTP,您可以确保您的信息是安全的。
还有重写规则,试试这个
RewriteEngine on
RewriteRule ^dir1/file/$ http://www.my.domain.com/dir1/file [QSA,L]