working permanentes permalink not htaccess friendly found enlaces current wordpress .htaccess url-rewriting seo pretty-urls

permanentes - wordpress get current url



bonita url con.htaccess? (3)

Deberá agregar lo siguiente a su archivo .htaccess:

RewriteRule ^(?![^.]+/.html.*)([^/]+)/([^/]+)/([^/]+)/?$ $1.html?$2=$3 [L,QSA]

Esto no embellecerá las URL que no tienen las tres variables, pero eso es bastante fácil de agregar a esta o simplemente incluir una regla adicional si es necesario.

Acabo de crear una nueva plantilla de página de WordPress que ejecuta algunas secuencias de comandos php y mysql en su interior y me gustaría aplicar la modificación de mods a sus subpáginas.

por ejemplo, tengo el siguiente enlace generado:

http://www.quotist.com/quotes-by-authors.html?letter=D

¿Cómo puedo transformar esto en algo así como:

http://www.quotist.com/quotes-by-authors/letter/d/ ?

en mi htaccess tengo el código predeterminado generado por wordpress ...

¿Alguien sabe cómo lograr eso?


Estaba usando esta pequeña ayuda de clase en un proyecto reciente ... tengo que decir que funcionó de maravilla ... fue escrito por: Kyle E Gentile

<?php // FILENAME: add_rewrite_rules.php if(!class_exists(''add_rewrite_rules'')){ class Add_rewrite_rules{ var $query_vars; var $rules; function __construct($options){ $this->init($options); } function init($options){ foreach($options as $key => $value){ $this->$key = $value; } } function rules_exist(){ global $wp_rewrite; $has_rules = TRUE; foreach($this->rules as $key => $value){ if(!in_array($value, $wp_rewrite->rules)){ $has_rules = FALSE; } } return $has_rules; } //to be used add_action with the hook ''wp_head'' //flushing rewrite rules is labor intense so we better test to see if our rules exist first //if the rules don''t exist flush its like after a night of drinking function flush_rules(){ global $wp_rewrite; if(!$this->rules_exist()){ //echo "flushed"; // If want to see this in action uncomment this line and remove this text and you will see it flushed before your eyes $wp_rewrite->flush_rules(); } } //filter function to be used with add_filter() with the hook "query_vars" function add_query_vars($query_vars){ foreach($this->query_vars as $var){ $query_vars[] = $var; } return $query_vars; } //to be used with a the add_action() with the hook "generate_rewrite_rules" function add_rewrite_rules(){ global $wp_rewrite; $wp_rewrite->rules = $this->rules + $wp_rewrite->rules; } } } ?>

Para usar esta clase, primero debes incluir el archivo.
Después de incluir el archivo, debe crear una matriz de opciones.

<?php include(YOURPLUGIN_ABSPATH.''/add_rewrite_rules.php''); $options = array( ''query_vars'' => array(''letter''), ''rules'' => array( ''(.+?)/([^/]+)/([^/]+)/?$'' => ''index.php?pagename=$matches[1]&letter=$matches[2]'' ) ); $rewrite = new Add_rewrite_rules($options); add_action(''wp_head'', array(&$rewrite, ''flush_rules'')); add_action( ''generate_rewrite_rules'', array(&$rewrite, ''add_rewrite_rules'') ); add_filter( ''query_vars'', array(&$rewrite, ''add_query_vars'') ); ?>

esto le permitirá usar la url http://www.quotist.com/quotes-by-authors/letter/d/

Marty


Prueba esto:

Options +FollowSymLinks -MultiViews -Indexes RewriteEngine on RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} 200 RewriteRule ^ - [L] RewriteCond %{QUERY_STRING} ^(letter)=(/w)$ [NC] RewriteRule ([^.]+)/.html http://www.quotist.com/$1/%1/%2? [L,R=301] RewriteCond %{REQUEST_URI} ^/([/w-]+)/(letter)//w/? [NC] RewriteRule ^ /%1.html?%2=%3 [L,QSA]