【问题标题】:Alternative to $_GET$_GET 的替代品
【发布时间】:2012-10-01 21:50:32
【问题描述】:

我有一个画廊,应该显示不同的相册。
当我打开带有链接的画廊时,我用 PHP 添加专辑名称:
<a href="gallery/index.php?album=nature
然后我用$_GET['album'] 得到专辑名称。它工作正常。
但对我来说,干净的 URL 很重要。当我完成网站并将其上传到托管商时,我会使用 .htaccess 文件更改 URL“布局”。
因此 URL http://www.example.com/gallery/index.php?album=blacknwhite 更改为 http://www.example.com/gallery/
现在我认为使用新的 URL,$_GET 不再起作用了。有没有 $_GET 的替代方法来交出专辑名称?
这里又是代码示例:

带有链接的网站:

<a href="gallery/index.php?album=nature">D</a>

index.php PHP 部分:

<head>
<?PHP
   $album = $_GET['album'];
?>
</head>

【问题讨论】:

  • Google for mod_rewrite。这将解决您的问题。
  • 是的,我将使用 mod_rewrite。但是 $_GET 仍然有效?
  • 是的。您的重写规则采用您的“漂亮”表示,然后映射到“丑陋”表示,因此在内部,脚本以完全相同的方式被调用。

标签: php javascript get


【解决方案1】:

您需要查看名为 htaccess 的东西,因为您需要使用 RewriteRule 来使它更漂亮,但仍然在您的 PHP 中保留 $_GET['album']

【讨论】:

  • URL 重写对我来说没问题。但是 $_GET 仍然适用于较短的 URL?我无法测试它,因为我在 xampp 上工作,而不是带有 .htaccess 的真实服务器...
  • XAMPP 与.htaccess 一起使用,只需确保您启用了mod_rewrite。是的,只要你有.htaccess,它就可以工作。
【解决方案2】:

您的规则应该类似于:

RewriteRule ^/([a-z]+)/?$ get_product_by_name.php?product_name=$1 [L]

它根本不应该影响 $_GET,所以如果它不起作用,那是因为您的规则设置不正确。

【讨论】:

    【解决方案3】:

    我建议您将相关信息保留在您的 URL 中,并且在这种情况下专辑标题似乎相关,因为我假设页面集中在它周围?

    让你的 URL 像这样工作:

    http://www.example.com/gallery/<album-title>/
    

    由于您似乎已经知道如何使用 htaccess,如果您获得这种格式,请将 URL 重写为“丑陋”的 URL。你的网址会看起来好多了。

    http://www.example.com/gallery/blacknwhite/
    

    【讨论】:

    • +1:好主意。 :P 我需要专辑名称来加载图片。每个专辑都是一个文件夹,名称类似于 url 中的专辑。它里面有图片。所以我可以使用 mod_rewrite 来获取这样的网址,对吧?其他问题:我可以用 xampp 模拟 htaccess 来测试它吗?
    • "既然你似乎已经知道如何使用 htaccess".. 现在我从文件开始。没有任何变化..我输入了一些代码,但什么也没发生。我读过,mod_rewrite 必须用'RewriteEngine on'激活......?是这样吗……?
    • 没错,还要确保使用脚本配置正确的文件夹。
    【解决方案4】:

    是的,还有另一种方法,但不推荐。看http://php.net/manual/en/reserved.variables.server.php 您可以使用 $_SERVER。但正确的方法是使用这里很好解释的 RewriteRule: http://www.webdeveloper.com/forum/showthread.php?214564-RewriteRule-with-GET-data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2012-01-25
      • 2015-08-05
      • 2011-01-01
      • 2011-10-24
      相关资源
      最近更新 更多