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

  1. URL Helper

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 .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow