Como remover o 'index.php' dos URLs?


Respostas:


17

Você pode fazer isso ativando os URLs do SEF e especialmente o parâmetro "Usar reescrita de URL" na configuração global do Joomla.

Observe que isso gerará um erro interno no servidor se você não criou o .htaccessarquivo antes de ativar a opção.

Há uma página de documento explicando quais etapas são necessárias para obter esses URLs legais. Dê uma olhada aqui: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

Basicamente, você precisa renomear o htaccess.txtarquivo encontrado no diretório raiz do Joomla. Dependendo do seu hoster, são necessárias etapas adicionais.


OK, vou tentar. É um pouco estranho que o Joomla não gere esse código como agora eu penso nisso. Acho que tentei essa opção e ela realmente caiu.
connersz

1
Essa é exatamente a razão pela qual o Joomla não gera o código em si. Depende muito do host e não queremos interromper completamente o seu site ativando um recurso :) #
027 Bakual

4

Você pode adicionar este código ao topo do index.php do Joomla:

if(strcmp($_SERVER['REQUEST_URI'], '/index.php') == 0 && $_SERVER['QUERY_STRING'] == ''){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /');
    exit;
}

Tenha cuidado, porém, se você seguir essa abordagem, precisará refazê-la quando atualizar.


Eu sugiro que você faça isso como um hack opcional se o redirecionamento e o ReWrite não funcionarem no htaccess. Então, um retorno válido
tristanbailey

acordado. foi assim que chegamos a essa solução. Não podíamos obter a correção htaccess para funcionar corretamente todo o site
ContextSwitch

4
  1. Alterado htaccess.txt para .htaccess
  2. Site> Configuração Global: Use a reescrita de URL (Escolha Sim)
  3. Configurações de SEO URLs amigáveis ​​aos mecanismos de pesquisa (escolha Sim)

2

Aqui está um método geral se seu site travar usando .htaccess:

  • Você deve comentar uma ou ambas as linhas:

Opções + FollowSymLinks

e / ou

RewriteBase /

Isso deve funcionar bem! Nota: você faz comentários dando uma hashtag para a linha "#"


1

Se você estiver usando o servidor web nginx , poderá usar o seguinte snippet para o nginx.confarquivo de configuração em que o seu Joomla! o site é veiculado (basicamente, basta adicionar a condição if após qualquer linha existente em que a index index.phpdiretiva seja exibida).

#/programming//a/38165768/remove-index-php-from-joomla-urls-with-nginx
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

Mais detalhes estão em /programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768 .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.