如何将查询字符串发送到另一个页面而不在URL中显示问号。 当我单击链接时,我想向另一个页面发送值,但我不想显示如何从URL隐藏问号。 我正在使用apache。 这是我的网址,其中包含?标记 http://localhost/learnindia/sub-category.php?category=automobiles-and-riksha
我想要这样 http://localhost/learnindia/sub-category/automobiles-and-riksha
任何一位了解url重写知识的人都可以帮助我。
答案 0 :(得分:0)
您可以使用.htaccess进行网址重写
例如
RewriteEngine On
RewriteRule ^(.*)$ /index.php?$1 [P]
答案 1 :(得分:0)
您没有指定正在使用的Web服务器。如果是Apache,则在root
目录(您的index.php所在的目录)中,创建具有以下内容的.htaccess
文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^sub-category/?$ sub-category.php?category=$1 [NC,L]
确保您的Apache不会禁止使用.htaccess
。您也可以直接修改apache配置文件,但我不建议这样做。只需使用htaccess。
答案 2 :(得分:0)
您始终可以发布数据并将其从url中隐藏
<?php
function send_via_post($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
答案 3 :(得分:0)
您应该在表单中使用POST方法
<form method="POST" action="file.php">
然后您使用
对其进行检索$var = $_POST['name_of_field'];
请确保您清理了输入内容,因为您永远无法信任用户输入内容!
这不会在URL中显示数据,但是请注意,任何季节的专业人员即使通过POST仍可以看到数据,因为随后将数据与内容正文一起发送。