Eu fiz essa pergunta no stackoverflow.com primeiro (pergunta aqui ). Nos comentários, você pode ler que seria melhor fazer essa pergunta aqui.
No meu site joomla eu estou usando echo $this->baseurl;
mas retorna o URL que contém "/index.php". Eu quero mudar isso para remover "/index.php" do baseurl. Mas não consigo encontrar a linha de definição de $this->baseurl;
.
Eu encontrei este tópico mas isso é baseado no modelo do proprietário da pergunta e no meu modelo não existe algo parecido com isto.
Sugestões muito apreciadas :)
$this->baseurl;
É basicamente o atalho para JUri::base()
. Ele obtém o URL que você especificou como a variável live_site
No seu arquivo configuration.php. Se isso não tiver valor, ele usará alguma mágica PHP mágica com base em algumas variáveis.
Então, vamos fazer alguns testes. Por favor, reporte os resultados de volta:
<?php
echo 'Rule 1: ' . JUri::base() . '\n';
echo 'Rule 2: ' . $_SERVER['PHP_SELF'] . '\n';
echo 'Rule 3: ' . $_SERVER['REQUEST_URI'] . '\n';
echo 'Rule 4: ' . $_SERVER['SCRIPT_NAME'] . '\n';
?>
<?php
echo JUri::base();
echo JUri::base(true);
?>
Na Configuração Global (back-end do Joomla), tente definir a reescrita de URL para Sim Se isso não funcionar, leia as etapas 1 , 2 e 5 do seção Apache nesta página e tente novamente.
Na parte superior do arquivo index.php do seu modelo, adicione o seguinte
<?php
$this->baseurl = JUri::base();
?>
O $this->baseurl;
É um atalho para ser usado dentro de um modelo, em vez de chamar o método JURI:base();
, da classe JURI. Faz parte do núcleo e você pode encontrá-lo em /libraries/joomla/environment/uri.php (~line 218).
Se você observar o método, verá que ele verifica o arquivo de configuração para ver se a variável $live_url
Está definida. Se sim, ele retornará esse URL, caso contrário, passará por várias outras verificações e retornará seu URI base real.
Provavelmente você tem a variável live_url definida em sua configuration.php
que inclui a index.php
no final. Verifique lá ...
Outra possibilidade é que o seu sistema de modelo/modelo atual tenha definido em algum lugar a propriedade $this->baseurl
. Você pode substituir facilmente o $this->baseurl
Dentro do seu modelo, redefinindo-o novamente na parte superior do arquivo index.php
Do seu modelo, como: $this->baseurl = JURI::base();
* Atualização:
Atualização 2 - para futuras referências
Para completar as informações fornecidas neste post, a JURI::base($pathonly boolean)
usa um argumento, o $pathonly
Que é um tipo de dados booleano - false
é o padrão.
Com $pathonly = true
, Ele retornará apenas o caminho para o site.
Exemplos:
<?php echo JURI::base(); ?> Would echo something like: http:://localhost/joomla25/
<?php echo JURI::base(true); ?> Would echo: /joomla25
Observe que quando $ pathonly = true, a barra final no final do caminho do URI é omitida.