Link Search Menu Expand Document

O que é o htaccess?

Em servidores web que utilizam Apache, o arquivo .htaccess é utilizado para aplicar configurações, renomeações, restrição de acesso, etc.

Com o htaccess, você pode criar urls mais amigáveis, retirando o sufixo .php por exemplo, fazendo com que a página fique apenas exemplo.com/blog.

Aqui são os procedimentos que podemos fazer:

  • Redirecionamentos de urls
  • Redirecionamentos de pastas
  • Bloqueio de acesso a determinadas pastas
  • Redirecionamentos quando em página de erro, para alguma personalizada.
  • Solicitação de módulos e aplicações do php, para serem executadas.
  • Habilitar Mod_rewrite
  • Fazer chamada de uma php.ini personalizada
  • Redirecionamentos para funcionamento de ferramentas e aplicações.

Veja o exemplo do htaccess do wordpress:


# BEGIN WordPress
# As diretrizes (linhas) entre "BEGIN WordPress" e "END WordPress" são
# geradas dinamicamente e só devem ser modificadas através de filtros do WordPress.
# Quaisquer alterações nas diretivas entre esses marcadores serão sobrescritas.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

</IfModule>

# END WordPress

    php_value upload_max_filesize 64M
    php_value post_max_size 128M
    php_value memory_limit 256M
    php_value max_execution_time 300
    php_value max_input_time 300

O arquivo é redigido usando regex.

Htaccess e o Client Side Rendering (CSR)

Frameworks como o VUE e o React normalmente são configurados para realizarem a renderização do site no cliente, ou seja, o site no servidor é apenas um index.html, fazendo com que acessar um link diretamente www.thailanagazawa.com.br/pages/post-sobre-algo retorne um erro 404.

Para resolver isso, é necessário que ao acessar o link, o servidor o leve sempre para o index.html e a requisição siga para o router. Adicione o seguinte código ao .htaccess.

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]