【问题标题】:php: Using subfolder path to access posts rather than GETphp:使用子文件夹路径而不是 GET 来访问帖子
【发布时间】:2017-01-02 14:42:53
【问题描述】:

很抱歉,如果已经有这方面的问题,我只是找不到它,因为我不知道它叫什么。

基本上,我希望能够在不使用 GET 的情况下使用他们的 id 访问某些帖子。例如,我想使用website.com/post/crazy-clickbait-post 而不是website.com/post.php?id=crazy-clickbait-post 来访问帖子。从广告的角度来看,它更加用户友好。

我该怎么做呢?我在想也许有一种方法可以在post 文件夹中使用一个名为index.php 的主帖子页面,然后解析网址以获取帖子ID,但我不确定这是否可能。

【问题讨论】:

  • 你所说的“帖子”是什么意思?这种表达真的没有任何意义。你感兴趣的是一个值。从何处获取它完全无关紧要:获取 URL 的参数、请求中的发布字段或 URL 路径组件的部分。
  • 如果您使用的是框架,则需要设置路由。否则,您将在 htaccess 文件中使用重写规则。
  • SEO Friendly URL的可能重复
  • 说真的,如果它是重复的,只需将其标记为重复,我不需要downvote。我在我的问题中特别提到,那里很可能存在重复,我只是无法弄清楚谷歌查询。我从没想过要搜索 SEO 友好的 url。感谢那些善良的人。

标签: php


【解决方案1】:

您基本上想要类似以下主题的“SEO 友好”网址:

How to write htaccess rewrite rule for seo friendly url

在您的情况下,您需要将其添加(或创建)到您的 .htaccess 文件中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^post/([^/]+)$ /post.php?id=$1 [L]

【讨论】:

  • 这里不回答问题,而是介绍重写和GET参数的话题。问题是关于发布请求的。
  • 这会将用户重定向到另一个带有 GET 信息的 url,还是 url 保持不变?我希望它保持不变,以防他们想复制它来分享它。
  • 这是一个在服务器内部工作的标准重写规则。不发送用于重定向的 http 标头。这意味着在浏览器中可见的 URL 保持不变。
  • 完美,这就是我的问题的解决方案,谢谢 Farkie。
  • @arkascha 我认为您在 GET / POST 事情上遇到了错误,我认为 OP 不是在谈论 HTTP 动词。
猜你喜欢
  • 2013-06-05
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 2023-02-15
  • 2021-02-05
  • 2020-09-03
  • 2021-05-30
相关资源
最近更新 更多