codeigniter
Basis-URL in Codeigniter
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
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 .