Skip to content

Instantly share code, notes, and snippets.

@tiagofrancafernandes
Last active June 15, 2024 16:52
Show Gist options
  • Save tiagofrancafernandes/a852fe2575e1b9ca5fabc373bac0da7b to your computer and use it in GitHub Desktop.
Save tiagofrancafernandes/a852fe2575e1b9ca5fabc373bac0da7b to your computer and use it in GitHub Desktop.
dev - apache

All requests need pass by index.php file

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

Para fazer com que todas as requisições sejam redirecionadas para um index.php usando um arquivo .htaccess, você pode utilizar o seguinte código:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

Este código faz o seguinte:

  • RewriteEngine On: Ativa o módulo de reescrita do Apache.
  • RewriteCond %{REQUEST_FILENAME} !-f: Verifica se o arquivo solicitado não existe.
  • RewriteCond %{REQUEST_FILENAME} !-d: Verifica se o diretório solicitado não existe.
  • RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]: Redireciona todas as requisições que não correspondem a um arquivo ou diretório existente para index.php, passando o caminho original como um parâmetro de consulta (path).

Este método é útil para frameworks MVC (Model-View-Controller) ou para criar um roteador de URL personalizado, onde index.php é responsável por interpretar a URL e carregar o conteúdo apropriado.

Se você deseja redirecionar todas as requisições, incluindo aquelas para arquivos e diretórios existentes, para index.php, você pode usar o seguinte código:

RewriteEngine on
RewriteRule ^((?!index\.php).+)$ /index.php [L]

Este código redireciona todas as requisições, exceto aquelas direcionadas para index.php, para index.php, evitando assim um loop infinito.

Lembre-se de que o arquivo .htaccess deve estar localizado no diretório raiz do seu projeto ou no diretório específico que você deseja que as regras se apliquem. Além disso, certifique-se de que o módulo mod_rewrite do Apache esteja habilitado no seu servidor para que as regras de reescrita funcionem corretamente [1][2][3][4].

Citations: [1] https://stackoverflow.com/questions/18406156/redirect-all-to-index-php-using-htaccess [2] https://gist.github.com/RaVbaker/2254618 [3] https://slashnode.com/articles/devops/2013-12-24-redirect-all-requests-to-index-php [4] https://serverfault.com/questions/991710/htaccess-to-rewrite-all-files-to-index-php [5] https://stackoverflow.com/questions/38595637/redirect-all-requests-to-index-php-htaccess [6] https://help.dreamhost.com/hc/en-us/articles/215747748-How-can-I-redirect-and-rewrite-my-URLs-with-an-htaccess-file [7] https://serverfault.com/questions/1151511/apache-rewrite-engine-redirect-all-request-to-index-php [8] https://www.reddit.com/r/PHP/comments/v6uld/is_it_wise_to_redirect_everything_to_indexphp_via/ [9] https://joomla.stackexchange.com/questions/32585/how-can-i-redirect-all-index-php-from-urls-to-stop-duplicate-urls [10] http://fangorn.thijma.nl/news/redirecting-all-requests-to-index-php-with-htaccess

<VirtualHost *:80>
    DocumentRoot "Caminho/para/a/pasta/do/projeto"
    ServerName nomedodominio.local
</VirtualHost>

No XAMP

Para criar um Virtual Host no Apache do XAMPP, você pode seguir os seguintes passos:

Abra o arquivo httpd-vhosts.conf localizado na pasta de instalação do XAMPP, geralmente em C:\xampp\apache\conf\extra\httpd-vhosts.conf

. Dentro desse arquivo, adicione a configuração do Virtual Host. A estrutura básica de um Virtual Host é a seguinte:

<VirtualHost *:80>
    DocumentRoot "Caminho/para/a/pasta/do/projeto"
    ServerName nomedodominio.local
</VirtualHost>

Certifique-se de substituir "Caminho/para/a/pasta/do/projeto" pelo caminho absoluto para a pasta do seu projeto e "nomedodominio.local" pelo nome de domínio que você deseja usar para acessar o projeto localmente. Salve o arquivo httpd-vhosts.conf. Abra o arquivo hosts localizado em C:\Windows\System32\drivers\etc\hosts com privilégios de administrador. Adicione a seguinte linha ao arquivo hosts:

127.0.0.1 nomedodominio.local
Substitua "nomedodominio.local" pelo mesmo nome de domínio que você usou na configuração do Virtual Host.
Salve o arquivo hosts.
Reinicie o Apache no painel de controle do XAMPP ou usando o comando apropriado.

Agora você deve ser capaz de acessar o seu Virtual Host digitando o nome de domínio configurado no navegador. Lembre-se de que essas instruções são específicas para o XAMPP no Windows. Se você estiver usando um sistema operacional diferente ou uma versão diferente do XAMPP, as etapas podem variar um pouco. Espero que isso ajude! Se você tiver mais alguma dúvida, fique à vontade para perguntar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment