codeigniter
URL de base dans Codeigniter
Recherche…
Définir votre URL de base dans Codeigniter
Vous devrez définir votre URL de base dans application/config/config.php
S'il n'est pas défini, alors CodeIgniter essaiera de deviner le protocole et le chemin d'accès à votre installation, mais en raison des problèmes de sécurité, le nom d'hôte sera défini sur $_SERVER['SERVER_ADDR']
s'il est disponible ou localhost. Le mécanisme de détection automatique existe uniquement pour des raisons de commodité pendant le développement et NE DOIT PAS être utilisé en production!
$config['base_url'] = '';
Il devrait être classé comme
$config['base_url'] = 'http://localhost/projectname/';
$config['base_url'] = 'http://www.example.com/';
Toujours bon à utiliser /
à la fin de base_url
Lorsque vous ne définissez pas votre URL de base, vous risquez de rencontrer des erreurs lorsque vous ne pouvez pas charger vos éléments CSS, images et autres éléments. De plus, vous pourriez avoir des difficultés à soumettre des formulaires car certains utilisateurs ont été confrontés.
Mettre à jour
Si vous ne souhaitez pas définir votre URL de base, une autre manière est.
Créez un nouveau fichier core dans application/core/MY_Config.php
Et collez ce code
<?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);
}
}
}
Quelque chose de plus à propos de base_url
Que se passe-t-il si je ne fixe pas base_url
?
Vous n'obtiendrez aucune erreur d'impuissance pour définir cela et continuer. Vous pouvez continuer sans définir, mais vous devez connaître l' injection d'en-tête HTTP
Si je ne l'ai pas mis ce qui va apparaître?
Vous obtiendrez http://[::1]/
place de votre URL réelle.
Qu'est-ce que cela signifie http://[::1]/
??
Ceci est l'URL temporaire définie par CI par défaut. Cela va pointer la racine de votre document.
::1
- Adresse du serveur (localhost) En savoir plus à ce sujet
Comment définir correctement base_url()
??
L'URL de base doit toujours pointer vers la racine du dossier de votre projet. (en dehors du dossier d'application)
$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)
Comment utiliser base_url()
??
L'utilisation la plus courante consiste à trouver le bon chemin vers vos fichiers js ou 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'ajout du code ci-dessus dans votre vue produira HTML comme ci-dessous:
<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>
Liens
Une manière intelligente de configurer la base_url
Les lignes de code suivantes constituent une manière plus intelligente de configurer la base_url
dans 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']);
Recommandé est
$config['base_url'] = 'https://stackoverflow.com/';
Parce que tout le monde connaît l'espace d'hébergement. Donc, si vous définissez comme ça, vous pouvez empêcher l'injection sur votre site / hôte .