问题描述
我敢肯定,将要求发布在 stackoverflow 中,即可获得解决方案。
我正在一个Web应用程序上工作,在那里我有页面,每个页面的内部都有帖子功能和问题。为此,我在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,L]
pages
用于GET
页面查询titles
用于GET
的帖子查询question
现在我需要在与发布GET
查询相同的页面上进行GET
个问题查询。
2:当用户单击问题链接(页面内)时,用户必须重定向到单个问题页面。
工作example.com/pages/my-page/my-page-first-Post
必需的example.com/pages/my-page/my-page-first-Question
此数据来自两个不同的 sql tables
解决方法
以下是您可以使用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,L]
# for URI /pages/my-page/q/my-page-first-Question
RewriteRule ^pages/([\w-]+)/q/([\w-]+)/?$ page.php?pages=$1&question=$2 [QSA,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')
}