codeigniter
URL di base in Codeigniter
Ricerca…
Impostazione dell'URL di base in Codeigniter
Dovrai impostare l'URL di base in application/config/config.php
Se non è impostato, CodeIgniter tenterà di indovinare il protocollo e il percorso dell'installazione, ma a causa dei problemi di sicurezza il nome host verrà impostato su $_SERVER['SERVER_ADDR']
se disponibile, o localhost in caso contrario. Il meccanismo di rilevamento automatico esiste solo per comodità durante lo sviluppo e NON DEVE essere utilizzato in produzione!
$config['base_url'] = '';
Dovrebbe essere archiviato come
$config['base_url'] = 'http://localhost/projectname/';
$config['base_url'] = 'http://www.example.com/';
Sempre buono da usare /
alla fine di base_url
Quando non imposti il tuo URL di base, potresti riscontrare degli errori in cui non puoi caricare il tuo CSS, le immagini e altri elementi delle risorse. Inoltre potresti avere problemi nell'invio di moduli come alcuni utenti hanno riscontrato.
Aggiornare
Se non si desidera impostare l'URL di base in un altro modo è.
Crea un nuovo file core in application/core/MY_Config.php
E incolla questo codice
<?php
class MY_Config extends CI_Config {
public function __construct() {
$this->config =& get_config();
log_message('debug', "Config Class Initialized");
// Set the base_url automatically if none was provided
if ($this->config['base_url'] == '')
{
if (isset($_SERVER['HTTP_HOST']))
{
$base_url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http';
$base_url .= '://'. $_SERVER['HTTP_HOST'];
$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
}
else
{
$base_url = 'http://localhost/';
}
$this->set_item('base_url', $base_url);
}
}
}
Qualcosa di più su base_url
Cosa succede se non imposto base_url
?
Non otterrai alcun errore di impotenza per impostarlo e procedere. È possibile continuare senza impostazioni, ma è necessario conoscere l' iniezione dell'intestazione HTTP
Se non l'avessi impostato, cosa apparirà?
Otterrai http://[::1]/
invece del tuo vero URL.
Cosa significa http://[::1]/
??
Questo è un URL temporaneo impostato da CI per impostazione predefinita. Questo punterà alla radice del tuo documento.
::1
- Indirizzo del server (localhost) Ulteriori informazioni su questo
Come impostare il corretto base_url()
??
L'URL di base dovrebbe sempre puntare alla radice della cartella del progetto. (cartella dell'applicazione esterna)
$config['base_url'] = 'http://localhost/path/to/project'; # If localhost
$config['base_url'] = 'http://stackoverflow.com/'; # If live
$config['base_url'] = 'http://stackoverflow.com/documentation'; # If live & inside subdomain (assume documentation is subfolder/subdomain)
Come usare base_url()
??
L'uso più comune è trovare il percorso giusto per i file js o css.
<link rel="stylesheet" href="<?php echo base_url('styles/style.css');?>" />
<script src="<?php echo base_url('vendor/jquery/jquery.min.js');?>"></script>
L'aggiunta del codice sopra nella tua vista produrrà HTML come di seguito:
<link rel="stylesheet" href="http://localhost/path/to/project/styles/style.css" />
<script src="http://localhost/path/to/project/vendor/jquery/jquery.min.js"></script>
link
Modo intelligente per impostare il base_url
Le seguenti righe di codice rappresentano un modo più intelligente di impostare il valore base_url
nel codeigniter:
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
Consigliato è
$config['base_url'] = 'https://stackoverflow.com/';
Perché tutti conoscono lo spazio di hosting. Quindi, se si imposta in questo modo è possibile impedire l'iniezione al tuo sito / host .