【问题标题】:SEO friendly url explanation?SEO友好的网址解释?
【发布时间】:2013-09-03 17:20:22
【问题描述】:

我对如何使用 htaccess 重写我的 url 以获得对 SEO 友好的 url 进行了一些研究,但我有一个问题:

当我从 index.php?news=1 重写为 /news/1 时,我的 $_GET['news'] 仍然有效吗?我似乎找不到对此的解释。在我开始将它实施到我的网站之前,我想确定一下。

谢谢!

【问题讨论】:

  • 这取决于你的重写规则是什么。如果您在编写正确的重写规则以实现这一目标方面需要帮助,请告诉我们。
  • 我们可以看看你的重写规则吗? ...并且您确定要重写 index.php?news=1 到 /news/1 而不是 /news/1 到 index.php?news=1 ?

标签: php .htaccess


【解决方案1】:

是的,这将按预期工作。

具体来说,mod_rewrite 对现有查询字符串的行为可能令人惊讶。例如,让我们采用以下规则,它会转换您提供的 URL:

 index.php?news=1 to /news/1

可以通过$_GET['news'] 访问页面名称。

【讨论】:

  • 怎么样?不能简单地用那个代替这个。
  • 感谢@CrazyYoghurt +1 为您服务
  • 这是一个英勇的编辑,但您真正所做的只是重申它将起作用。为什么?news=1 映射到/news/1 仍然可以与$_GET['news'] 一起使用?
  • 当客户端请求example.com/news时,服务器使用重写规则为example.com/index.php?p=news服务。@CrazyYoghurt
【解决方案2】:

当我从 index.php?news=1 重写为 /news/1 时,我的 $_GET['news'] 仍然有效吗?

是的$_GET['news'] 已设置,因为您已将 news=1 硬编码到重写的查询字符串中。

如果您有其他查询参数,这取决于。如果您使用了QSA(查询字符串附加)标志,那么,否则$_GET['param'] 不会在URL 中设置:

/news/1?param=2

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 2011-07-23
    • 2011-04-06
    • 2014-01-14
    • 2017-05-14
    • 2014-07-26
    • 2011-02-15
    • 2020-05-09
    • 2010-10-24
    相关资源
    最近更新 更多