Cómo cambiar la consulta GET que ya funciona con el cambio de los datos GET solicitados usando htaccess en php

Aug 24 2020

Estoy seguro de que al publicar aquí en stackoverflow con los requisitos puedo obtener las soluciones.

Estoy trabajando en una aplicación web donde tengo páginas y dentro de cada página, hay funciones de publicaciones y preguntas. Para lo cual tengo dos tablas en SQL postsy questions. Ahora lo que quiero es:
1: Cuando un usuario hace clic en el enlace de la publicación (dentro de la página), el usuario tiene que redirigir a una sola página de publicación con URL amigables para SEO que está funcionando.

RewriteRule ^pages/([\w-]+)/?$ page.php?pages=$1 [QSA,NC,L]
RewriteRule ^pages/([\w-]+)/([\w-]+)/?$ page.php?pages=$1&title=$2 [QSA,NC,L]
pageses para GETconsulta de página
titleses para GETconsulta de publicación
questionahora necesito una GETconsulta de pregunta en la misma página que usé para la GETconsulta de publicación .

2: Cuando un usuario hace clic en el enlace de la pregunta (dentro de la página), el usuario debe redirigir a una sola página de preguntas.

Trabajo example.com/pages/my-page/my-page-first-Post
requeridoexample.com/pages/my-page/my-page-first-Question

Estos datos provienen de dos SQL tables

Respuestas

2 anubhava Aug 24 2020 at 16:36

Así es como puede usar 3 reglas separadas:

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]

Dentro de su page.phpcódigo puede verificar:

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')
}