.htaccess - 如何在 php 中使用 htaccess 更改已工作的 GET 查询并更改请求的 GET 数据

标签 .htaccess mod-rewrite

我确信通过在 stackoverflow 中发布需求,我可以得到解决方案。

我正在开发一个网络应用程序,其中有页面,每个页面上都有帖子功能和问题。为此,我在 SQL postsquestions 中有两个表。现在我想要的是:
1:当用户单击帖子链接(页面内)时,用户必须重定向到具有 SEO 友好 URL 且有效的单个帖子页面。

RewriteRule ^pages/([\w-]+)/?$ page.php?pages=$1 [QSA,NC,L]
RewriteRule ^pages/([\w-]+)/([\w-]+)/?$ page.php?pages=$1&title=$2 [QSA,NC,L]
pages 用于GET页面查询
titles 用于 GET 后查询
question 现在我需要在我用于 post GET 查询的同一页面上进行 GET 问题查询。

2:当用户单击问题链接(页面内)时,用户必须重定向到单个问题页面。

工作example.com/pages/my-page/my-page-first-Post
必填 example.com/pages/my-page/my-page-first-Question

此数据来自两个不同的 SQL 表

最佳答案

以下是如何使用 3 个单独的规则:

RewriteEngine On

# /pages/my-page
RewriteRule ^pages/([\w-]+)/?$ page.php?pages=$1 [QSA,NC,L]

# for URI /pages/my-page/my-page-first-Post
RewriteRule ^pages/([\w-]+)/([\w-]+)/?$ page.php?pages=$1&title=$2 [QSA,NC,L]

# for URI /pages/my-page/q/my-page-first-Question 
RewriteRule ^pages/([\w-]+)/q/([\w-]+)/?$ page.php?pages=$1&question=$2 [QSA,NC,L]

在您的 page.php 代码中您可以检查:

if (isset($_GET['question')) {
    // question page
    // work with $_GET['page') and $_GET['question')
} else if (isset($_GET['title')) {
    // post page
    // work with $_GET['page') and $_GET['title')
} else {
    // single page
    // work with $_GET['page')
}

关于.htaccess - 如何在 php 中使用 htaccess 更改已工作的 GET 查询并更改请求的 GET 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63551471/

相关文章:

php - 如何在 .htaccess 文件中定义变量并使用它?

PHP - .htaccess 重写外部服务器连接

php - 使用两个 get 参数清理 php 中的 url

.htaccess - Yii seo url 重写 urlManager 和 .htaccess

php - Mod 重写 Htaccess 来伪造目录

apache - 如何防止用户通过url访问多个目录下的图片

.htaccess - 使用 .htaccess 强制 HTTPS 导致重定向循环

javascript - ionic http POST 不适用于服务器

.htaccess - 使用 .htaccess 将所有 url 重定向到 https,图像除外(在 Symfony2 中)

.htaccess - Htaccess domain.com 到 www.domain.com 有效,但它失去了与 SEO 相关的其他规则