WordPress: remover diretório da regra URL rewrite pelo .htaccess

Como acessar diretamente um diretório na raiz do servidor de hospedagem se o WordPress estiver configurado para trabalhar como URL amigáveis?

htaccess

問題

Todos nós sabemos que quando se quer acessar um diretório na raiz do servidor, basta colocar o domínio seguido do nome do tal diretório. 所以, 舉個例子, se o diretório chama-seuploads”, você acessa ele pelo endereço HTTP://taylorlopes.com/uploads.

O problema é que ao configurar o WordPress (ou qualquer outro sistema) com URL amigáveis, o que antes era uma página chamada contatos com uma URL HTTP://taylorlopes.com/?page_id=2, passa a ser algo como HTTP://taylorlopes.com/contatos. Note que essa nova forma de chamar a URL (dita amigável), assemelha-se a chamada de um diretório, sendo que contatos na verdade não é um diretório, mas apenas uma página.

Logo, a partir do momento que você decide usar URL amigáveis fica impossível chamar um diretório, pois o WordPress interpreta isso como sendo uma chamada a uma página, que obviamente não existe, e lança o erro老年退休金計畫! Essa página não pode ser encontrada“. 所以, como fazer para chamar um diretório sem que o WordPress interprete essa chamada como sendo a uma página?

解決方案

Para resolver esse problema e conseguir acessar diretamente um diretório na raiz do servidor sem que o WordPress interprete-o como uma página, 打開檔 .htaccess e adicione a seguinte linha logo abaixo da primeira instrução RewriteRule, trocandomydirpelo nome do seu atual diretório:

Código parcial

RewriteCond %{REQUEST_URI} !^/(mydir|mydir/.*)$

完整的代碼

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

注意:

.htaccess fica na raiz do diretório onde o conteúdo Web é publicado, como por exemplo no diretório /www (wampserver) ou no /htdocs (xampp).

Redirecionamento

A ideia aqui é fazer com que um Post (página) responda por duas URL amigáveis, desta forma, quando alguém digitar HTTP://taylorlopes.com/about (a página about não existe) seja feito um redirecionamento para HTTP://taylorlopes.com/sobre (página sobre existe). Use o .htaccess para fazer o redirecionamento:

Código parcial

Redirect /about /sobre

完整的代碼

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/(util|util/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Redirect /about /sobre
RewriteRule . /index.PHP [L]
</IfModule>
# END WordPress

來源

WordPress: Exclude directory from URL rewrite with .htaccess

總點擊數: 3000

留言

您的電子郵件地址將不會發佈. 與標記必填的欄位 *