codeigniter
Base url in Codeigniter
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
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 .