Suche…


Festlegen der Basis-URL in Codeigniter

Sie müssen Ihre Basis-URL in application/config/config.php

Ist dies nicht der Fall, versucht CodeIgniter, das Protokoll und den Pfad Ihrer Installation zu erraten. Aufgrund der Sicherheitsbedenken wird der Hostname jedoch auf $_SERVER['SERVER_ADDR'] , ansonsten auf localhost. Der automatische Erkennungsmechanismus existiert nur zur Vereinfachung während der Entwicklung und darf NICHT in der Produktion verwendet werden!

$config['base_url'] = '';

Es sollte gerne abgelegt werden

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

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

Immer gut zu verwenden / am Ende von base_url

Wenn Sie Ihre Basis-URL nicht festlegen, treten möglicherweise Fehler auf, bei denen Sie Ihr CSS, Bilder und andere Elemente nicht laden können. Außerdem haben Sie möglicherweise Probleme beim Senden von Formularen, da einige Benutzer darauf gestoßen sind.

Aktualisieren

Wenn Sie Ihre Basis-URL nicht festlegen möchten, besteht eine andere Möglichkeit.

Erstellen Sie eine neue Kerndatei in application/core/MY_Config.php

Und fügen Sie diesen Code ein

<?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);

        }
    }
}

Etwas mehr über base_url

Was passiert, wenn ich nicht base_url gesetzt base_url ?

Sie erhalten keine Impotenzfehler, um dies festzulegen und fortzufahren. Sie können ohne Einstellung fortfahren, sollten jedoch über die HTTP-Header-Injektion Bescheid wissen


Wenn ich es nicht eingestellt habe, was wird angezeigt?

Sie erhalten http://[::1]/ anstelle Ihrer tatsächlichen URL.


Was bedeutet das http://[::1]/ ??

Dies ist eine temporäre URL, die standardmäßig von CI festgelegt wird. Dadurch wird der Stamm Ihres Dokuments angezeigt.

::1 - Serveradresse (localhost) Lesen Sie mehr dazu


Wie setze base_url() ?

Die Basis-URL sollte immer auf das Stammverzeichnis Ihres Projektordners verweisen. (außerhalb des Anwendungsordners)

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

Wie benutze base_url() ?

Am häufigsten wird der richtige Pfad zu Ihren Js- oder CSS-Dateien gesucht.

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

Durch Hinzufügen des obigen Codes in Ihrer Ansicht wird HTML-Code wie folgt erzeugt:

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

Intelligente Methode zum Einrichten von base_url

Die folgenden Codezeilen sind eine intelligentere Methode zum Einrichten von base_url in 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']);

Empfohlen ist

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

Weil jeder den Hosting Space kennt. Wenn Sie also so einstellen, können Sie die Injektion in Ihre Site / Ihren Host verhindern .



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow