/ / url rewrite y redirecciona con la carpeta usando htaccess - php, apache, .htaccess, mod-rewrite, url-rewriting

reescritura de URL y redireccionamiento con carpeta usando htaccess - php, apache, .htaccess, reescritura de mods, reescritura de url

OK Soy nuevo en el tema de reescritura y redireccionamiento de URL. ¡Tengo que buscar en Google & Stackoverflow para encontrar una respuesta que funcione y que nada parece funcionar!

Lo que estoy tratando de lograr es ... Toma este enlace: mysite.com/research/index.php?quote=goog

Luego conviértelo y redirígelo a esto: mysite.com/research/goog

¿Importa que el "goog" al final de la cadena de URL se tome de un formulario que se encuentra en la url? Aquí está el código utilizado para agarrar el "goog" <?php echo $_POST["quote"];?>

A continuación se muestra el único código de fragmento que tengo en mihtaccess y no funcionó. ¿Lo estoy haciendo mal? ¿Falta algo en mi código? Tengo mi código en el directorio raíz (mysite.com) ¿Debo tenerlo en la carpeta de "investigación"? (mysite .com / investigación /)

RewriteEngine On
RewriteRule ^quote/([^/]*)$ /research/index.php?quote=$1 [L]

¿Es posible que mi host / servidor no acepte archivos .htaccess? ¿Debo hacerlo en un archivo web.config? Si es así, ¿cómo convertiría el código anterior en un archivo web.config que funcione?

Respuestas

3 para la respuesta № 1

Estas son las reglas que necesitarás en tu /research/.htaccess archivo:

RewriteEngine On
RewriteBase /research/

RewriteCond %{THE_REQUEST} /index.php?quote=([^s&]+) [NC]
RewriteRule ^ %1? [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?quote=$1 [L,QSA,NC]

Accede a él en tu index.php utilizando:

$quote = $_GET["quote"];`

0 para la respuesta № 2

Esto debería funcionar para usted:

RewriteEngine On
RewriteCond %{QUERY_STRING} "quote=([^&]+)"
RewriteRule ^/research/index.php /research/%1? [R,L]

La cadena de consulta es una parte separada de lasolicite a la URL por lo que necesita verificar eso explícitamente. Al usar el RewriteCond, puede decir que si el parámetro "quote" existe, "capturará el valor" (al obtener todos los caracteres que lo siguen que no son "&"). Esto rellena la variable% 1 que puede utilizar en la reescritura.