codeigniter
Bas-url i kodigniter
Sök…
Ställer in din bas-url i Codeigniter
Du måste ange din bas-URL i application/config/config.php
Om det inte är inställt kommer CodeIgniter att försöka gissa protokollet och sökvägen till din installation, men på grund av säkerhetsproblemen kommer värdnamnet att ställas in till $_SERVER['SERVER_ADDR']
om det är tillgängligt eller localhost annars. Auto-detekteringsmekanismen finns endast för bekvämlighet under utveckling och MÅSTE INTE användas i produktionen!
$config['base_url'] = '';
Det bör arkiveras som
$config['base_url'] = 'http://localhost/projectname/';
$config['base_url'] = 'http://www.example.com/';
Alltid bra att använda /
i slutet av base_url
När du inte ställer in din bas-URL kan du stöta på några fel där du inte kan ladda dina CSS, bilder och andra tillgångar. Och du kan också ha problem med att skicka formulär eftersom vissa användare har stött på.
Uppdatering
Om du inte vill ställa in din webbadress är ett annat sätt.
Skapa en ny kärnfil i application/core/MY_Config.php
Och klistra in den här koden
<?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);
}
}
}
Något mer om base_url
Vad händer om jag inte ställer in base_url
?
Du får inget impotensfel för att ställa in detta och fortsätta. Du kan fortsätta utan att ställa in, men du bör veta om HTTP-headerinjektion
Om jag inte har ställt in det, vad kommer då att dyka upp?
Du kommer att få http://[::1]/
istället för din faktiska URL.
Vad betyder detta http://[::1]/
??
Det här är en tillfällig URL som ställs in av CI som standard. Detta kommer att peka på roten till ditt dokument.
::1
- Serveradress (localhost) Läs mer om detta
Hur ställer base_url()
in korrekt base_url()
??
Bas-URL bör alltid peka på roten till din projektmapp. (utanför applikationsmappen)
$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)
Hur man använder base_url()
??
Vanligtvis är att hitta rätt sökväg till dina js- eller css-filer.
<link rel="stylesheet" href="<?php echo base_url('styles/style.css');?>" />
<script src="<?php echo base_url('vendor/jquery/jquery.min.js');?>"></script>
Lägga till koden ovan i din vy kommer att producera HTML enligt nedan:
<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>
länkar
Smart sätt att ställa in base_url
Följande kodrader är ett smartare sätt att ställa in base_url
i kodignern:
$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']);
Rekommenderas är
$config['base_url'] = 'https://stackoverflow.com/';
Eftersom alla känner till värdutrymmet. Så om du ställer in så här kan du förhindra injektion till din webbplats / värd .