URL reescrever no site personalizado do Wordpress

2

Recebi a tarefa de modificar um site Wordpress existente com reescrita de URL. O problema é que eu nunca fiz isso antes. Eu sei que essas regras devem ir em um arquivo .htaccess na raiz com algo assim:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

No entanto, não tenho ideia de como devo especificar as regras e condições para reescrever. Eu tentei ler o guia mod_rewrite , mas minha falta de habilidades técnicas limita meu compreensão.

Aqui estão os URLs que precisam ser reescritos e os resultados desejados:

URL genérico de postagem no blog
www.example.com/?p=X
= www.example.com/blog/custom-post-title /

Páginas específicas
www.example.com/?page_id=2
= www.example.com/about/

www.example.com/?page_id=4
= www.example.com/bloggers/?hl=pt_BR www.example.com/?page_id=10
= www.example.com/results/

Perfil genérico de blogger
www.example.com/?author=X
= www.example.com/blogger/author-name/

Qualquer ajuda com isso seria muito apreciada. Obrigado antecipadamente!

    
por o01 19.04.2011 / 12:57

2 respostas

2

Você está pensando inversamente: você reescreve a URL de entrada para corresponder ao seu sistema de arquivos.

Você quer reescrever www.example.com/blog/custom-post-title/ para www.example.com/?p=X

Para todas as suas páginas, vá de específico para genérico.

#Specifics
RewriteRule ^results/$ /?page_id=10 [L]
RewriteRule ^bloggers/$ /?page_id=4 [L]
RewriteRule ^about/$ /?page_id=2 [L]
#Blogger names
RewriteRule ^bloggers/(.+)$ /?author=$1 [L] #is there really no s to blogger here??
#Other articles
RewriteRule ^(.+)$ /?$1 [L]

Eu tenho uma pequena dúvida sobre a última regra, já que você não usa nome de arquivo para redirecionamento (reescreva on /) ele pode fazer um novo pedido para index.php?<thequerystring> , então teríamos que excluir index.php da última reescrita para evitar loops infinitos:

RewriteRule ^index.php$ - [L]

Pode ser adicionado na frente de todos os outros.

    
por 19.04.2011 / 14:00
1

O Wordpress deve poder fazer isso por você na seção permalinks das configurações.

Se não conseguir gravar diretamente no arquivo .htaccess, ele deverá fornecer algo para copiar e colar.

O único problema que posso ver é o uso de "blogger" em vez de autor. Que você pode precisar corrigir, se você vê isso como importante o suficiente.

Mais informações

    
por 19.04.2011 / 13:00