Antigo blog / e blog / feed / URLs não funcionam depois de mover o blog para o nível superior via .htaccess

4

Por muito tempo eu servi meu blog de enlace , com a instalação do wordpress em /home/murrayc/murrayc.com / blog /. Agora eu mudei para enlace , sem mover a instalação do wordpress no sistema de arquivos.

Eu fiz isso por:

  • Alterando o "Endereço do site (URL)", em Configurações gerais, para enlace . Eu mantive o "Endereço do WordPress (URL)" como enlace

  • Adicionando uma RedirectRule no meu .htaccess de nível superior em /home/murrayc/murrayc.com/, para que, por exemplo, permalink / something possa ser usado em vez de blog / permalink / something. Os blogs / permalinks mais antigos ainda parecem funcionar também.

No entanto, alguns links antigos não estão funcionando. O enlace leva você a uma página que menciona blogs, presumivelmente por meio da tentativa do Wordpress de adivinhar o que você quer. Da mesma forma, o enlace leva você ao feed de comentários de uma postagem antiga do blog.

Com as regras adicionadas pelo Wordpress (depois de mudar o "URL do endereço do site", eu acho), este é o meu arquivo .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/temp
RewriteRule ^(.*)$ blog/$1 [L]

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

Estou usando o Wordpress 3.5.1, a versão mais recente, através da instalação de 1 clique do Dreamhost, que é atualizada automaticamente.

Isso parece um bug no Wordpress. Talvez esteja interpretando erroneamente URLs que ele recebe em algum momento que contenham blog / blog.

    
por murrayc 31.01.2013 / 09:36

2 respostas

0

Você pode pular a primeira parte do seu .htaccess , basta usar a configuração padrão do WordPress.

O principal problema é que você precisa criar um novo index.php no diretório root do seu espaço da Web, contendo o seguinte:

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require('./blog/wp-blog-header.php');
?>

Você também precisa criar um arquivo .htaccess em seu diretório raiz, contendo o WordPress padrão.htaccess, e então tudo deve funcionar bem.

    
por fischi 31.01.2013 / 10:37
0

Você pode querer usar redirecionamentos 301, já que agora não há diretório de blog, mas é assumido como root. Você tem que informar ao servidor que estes são URLs antigos e devem ser compatíveis com os novos. Você pode fazer isso usando .htaccess como código abaixo,

//301 Redirect Old File
Redirect 301 http://www.murrayc.com/blog http://www.murrayc.com/
Redirect 301 http://www.murrayc.com/blog/feed http://www.murrayc.com/feed

também existem plugins para estes.

    
por Rajeev Vyas 04.02.2013 / 13:49