如何将查询字符串发送到另一个页面而不在URL中显示问号。我想在单击链接时将值发送到另一个页面,但我不想显示如何从 url 隐藏问号。我正在使用阿帕奇。这是我的网址,其中包含 ?马克http://localhost/learnindia/sub-category.php?category=automobiles-and-riksha
我想要这样http://localhost/learnindia/sub-category/automobiles-and-riksha
任何人都可以帮助我了解 URL 重写。
您可以使用.htaccess进行URL重写
例如
RewriteEngine On
RewriteRule ^(.*)$ /index.php?$1 [P]
您没有指定正在使用的网络服务器。如果是 Apache,那么在 root
目录(索引所在的目录.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。
您可以随时发布数据并将其从 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;
}
您应该在表单中使用 POST 方法
<form method="POST" action="file.php">
然后,您可以使用
$var = $_POST['name_of_field'];
请放心,还要确保清理你的输入,因为你永远不能相信用户输入!
这不会在URL中显示数据,但请注意,任何赛季专业人士仍然可以通过POST查看数据,因为数据随后会与内容正文一起发送。