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

时间:2019-01-21 06:17:58

标签: php

如何将查询字符串发送到另一个页面而不在URL中显示问号。 当我单击链接时,我想向另一个页面发送值,但我不想显示如何从URL隐藏问号。 我正在使用apache。 这是我的网址,其中包含?标记 http://localhost/learnindia/sub-category.php?category=automobiles-and-riksha

我想要这样 http://localhost/learnindia/sub-category/automobiles-and-riksha

任何一位了解url重写知识的人都可以帮助我。

4 个答案:

答案 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仍可以看到数据,因为随后将数据与内容正文一起发送。