Ho posto prima questa domanda su stackoverflow.com (domanda qui ). Nei commenti puoi leggere che sarebbe meglio se faccio questa domanda qui.
Sul mio sito Web joomla sto usando echo $this->baseurl;
ma restituisce l'URL contenente "/index.php". Voglio cambiarlo per rimuovere "/index.php" da baseurl. Ma non riesco a trovare la linea di definizione di $this->baseurl;
.
Ho trovato questo thread ma questo si basa sul modello del proprietario della domanda e nel mio modello non esiste qualcosa del genere.
Suggerimenti molto apprezzati :)
$this->baseurl;
È fondamentalmente la scorciatoia per JUri::base()
. Ottiene l'URL che hai specificato come variabile live_site
Nel tuo file configuration.php. Se questo non ha alcun valore, utilizzerà alcuni PHP magia basata su alcune variabili.
Quindi, eseguiamo alcuni test. Si prega di riportare i risultati:
<?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);
?>
Nella Configurazione globale (backend Joomla), prova a impostare Riscrittura URL su Sì . Se questo non funziona, leggi i passaggi 1 , 2 e 5 del sezione Apache in questa pagina e riprovare.
Nella parte superiore del file index.php del modello, aggiungi quanto segue
<?php
$this->baseurl = JUri::base();
?>
$this->baseurl;
È un collegamento da utilizzare dall'interno di un modello, invece di chiamare il metodo JURI:base();
, della classe JURI. Fa parte del core e puoi trovarlo in /libraries/joomla/environment/uri.php (~line 218).
Se guardi il metodo, vedrai che controlla nel file di configurazione per vedere se la variabile $live_url
È definita. Se sì, restituirà questo URL, altrimenti passerà attraverso una serie di altri controlli e restituirà l'URI di base effettivo.
Molto probabilmente hai la live_url variabile definita nella tua configuration.php
che include index.php
alla fine. Controlla lì ...
Un'altra possibilità è che l'attuale sistema di template/template abbia da qualche parte definito la proprietà $this->baseurl
. Puoi facilmente sostituire $this->baseurl
All'interno del tuo modello ridefinendolo nuovamente nella parte superiore del file index.php
Del tuo modello, come: $this->baseurl = JURI::base();
* Aggiornamento:
Aggiornamento 2 - per riferimenti futuri
Per completare le informazioni fornite in questo post, la JURI::base($pathonly boolean)
accetta un argomento, il $pathonly
Che è un tipo di dati booleano - false
è il predefinito.
Con $pathonly = true
, Restituirà solo il percorso del sito.
Esempi:
<?php echo JURI::base(); ?> Would echo something like: http:://localhost/joomla25/
<?php echo JURI::base(true); ?> Would echo: /joomla25
Si noti che quando $ pathonly = true, la barra finale alla fine del percorso URI viene selezionata.