Zoeken…


Uw basis-URL instellen in Codeigniter

U moet uw basis-URL instellen in application/config/config.php

Als het niet is ingesteld, probeert CodeIgniter het protocol en het pad naar uw installatie te raden, maar vanwege beveiligingsredenen wordt de hostnaam ingesteld op $_SERVER['SERVER_ADDR'] indien beschikbaar, of localhost anders. Het automatische detectiemechanisme bestaat alleen voor het gemak tijdens de ontwikkeling en MAG NIET worden gebruikt in de productie!

$config['base_url'] = '';

Het moet worden ingediend als

$config['base_url'] = 'http://localhost/projectname/';

$config['base_url'] = 'http://www.example.com/';

Altijd goed om te gebruiken / aan het einde van base_url

Wanneer u uw basis-URL niet instelt, kunnen er enkele fouten optreden waardoor u uw CSS, afbeeldingen en andere items niet kunt laden. En u kunt ook problemen ondervinden bij het indienen van formulieren, zoals sommige gebruikers zijn tegengekomen.

Bijwerken

Als u uw basis-URL niet wilt instellen, is dit een andere manier.

Maak een nieuw kernbestand in application/core/MY_Config.php

En plak deze 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);

        }
    }
}

Iets meer over base_url

Wat gebeurt er als ik base_url niet instel?

U krijgt geen impotentiefout om dit in te stellen en door te gaan. U kunt doorgaan zonder in te stellen, maar u moet weten over HTTP-headerinjectie


Als ik het niet heb ingesteld, wat verschijnt er dan?

U krijgt http://[::1]/ plaats van uw werkelijke URL.


Wat betekent dit http://[::1]/ ??

Dit is een tijdelijke URL die standaard wordt ingesteld door CI. Dit zal de root van uw document aangeven.

::1 - Serveradres (localhost) Lees hier meer over


Hoe de juiste base_url() ?? in te stellen

Basis-URL moet altijd verwijzen naar de root van uw projectmap. (buiten applicatiemap)

$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)

Hoe base_url() ?? te gebruiken

Het meest voorkomende gebruik is om het juiste pad naar uw js- of css-bestanden te vinden.

<link rel="stylesheet" href="<?php echo base_url('styles/style.css');?>" />
<script src="<?php echo base_url('vendor/jquery/jquery.min.js');?>"></script>

Als u de bovenstaande code in uw weergave toevoegt, wordt HTML als volgt geproduceerd:

<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>

Links

  1. URL-helper

Slimme manier om base_url in te stellen

De volgende coderegels zijn een slimmere manier om base_url in codeigniter in te stellen:

$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']);

Aanbevolen is

$config['base_url'] = 'https://stackoverflow.com/';

Omdat iedereen de hostingruimte kent. Dus als u dit zo instelt, kunt u injectie op uw site / host voorkomen .



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow