我确信通过在 stackoverflow 中发布需求,我可以得到解决方案。
我正在开发一个网络应用程序,其中有页面,每个页面上都有帖子功能和问题。为此,我在 SQL posts
和 questions
中有两个表。现在我想要的是:
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/