如何将查询字符串发送到另一个页面而不在 URL 中显示问号



如何将查询字符串发送到另一个页面而不在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查看数据,因为数据随后会与内容正文一起发送。

最新更新