0

该网站将使用 php & mysql

对于我的新网站,我正在尝试使用干净的 url,而不是拥有可怕的页面?x=1&y=23&ee=23 我想要更好的东西。

使用带有 POST 方法的表单,我想得到类似的东西

http://www.xxx.com/page-color-blue-size-12-light

如果 action="action-page.php" 则加载的页面将需要从 action-page.php 读取 $_POST 并创建一个新 URL 并重定向到新 URL,这似乎不是一个好主意。

如果我使用 $_GET,我会以 url 结尾?和 & 作为参数。

解决方案可以是在单击提交之前更新方法的 JS,但在这种情况下,该网站将不适用于谷歌...

如您所见,我找不到一个好的解决方案...任何想法?

笔记 -

感谢您的回复,但我不是在寻找 URL 重写,如果我试图阅读 http://www.xxx.com/page-color-blue-size-12-light 但它不是我正在尝试做什么,我正在尝试从帖子中构建此 URL。

4

3 回答 3

1

通过 POST 请求发送参数

<form action="page.php" method="post">
  <input type="hidden" name="data" value="1" />
  <input type="submit" value="Submit">
</form>

请求 URL 将是 just page.php,并且$_POST['data']将包含您的参数。

如果你想使用类似的 URL http://www.xxx.com/page-color-blue-size-12-light,那么你需要

  • 通过一些重写规则由 Web 服务器重定向;
  • 通过解析 PHP 脚本中的 URL 路由到其他页面。

可能是第一个解决方案更好,因为第二个解决方案意味着处理 2 个 HTTP 请求。

于 2013-04-15T21:43:12.303 回答
1

这只不过是所谓的 URL 重写。您可以从以下网站找到更多信息。

http://www.cyberdesignz.com/blog/website-design/url-rewriting-top-5-ways-of-php-url-rewriting/

于 2013-04-15T21:44:17.247 回答
0

在我看来,您正在寻求帮助进行URL 重写。它们涵盖了让您的位置栏显示一些漂亮的东西而不是您提到的所有查询字符串参数的基础知识。更新:

我对您的问题理解得更好一些,我想我可能有一个解决方案,至少可以让您了解问题的第一部分。我把它放在jsfiddle 上供你查看。

<form id="myform" action="" method="POST">
    <input type="text" id="color" name="color" value="blue"/>
    <br />
    <input type="text" id="size" name="size" value="12-light"/>
    <br />
    <input type="submit" value="Go" />
</form>

<script type="text/javascript">
jQuery(function($) {
    $("#myform").submit(function() {
        var color = $("#color").val();
        var size = $("#size").val();
        $("#myform").attr("action", "/page-color-" + color + "-size-" + size);
        $("#myform").submit();
    });
});
</script>
于 2013-04-15T21:42:54.987 回答