codeigniter
Podstawowy adres URL w Codeigniter
Szukaj…
Ustawianie podstawowego adresu URL w Codeigniter
Musisz ustawić swój podstawowy adres URL w application/config/config.php
Jeśli nie jest ustawiony, CodeIgniter spróbuje odgadnąć protokół i ścieżkę do instalacji, ale ze względów bezpieczeństwa $_SERVER['SERVER_ADDR']
hosta zostanie ustawiona na $_SERVER['SERVER_ADDR']
jeśli jest dostępny, lub localhost w przeciwnym razie. Mechanizm automatycznego wykrywania istnieje tylko dla wygody podczas projektowania i NIE WOLNO go używać w produkcji!
$config['base_url'] = '';
Powinien być złożony jak
$config['base_url'] = 'http://localhost/projectname/';
$config['base_url'] = 'http://www.example.com/';
Zawsze dobry w użyciu /
na końcu base_url
Jeśli nie ustawisz podstawowego adresu URL, możesz napotkać błędy, w wyniku których nie możesz załadować CSS, obrazów i innych elementów zasobów. A także mogą wystąpić problemy z przesyłaniem formularzy, na które natrafili niektórzy użytkownicy.
Aktualizacja
Jeśli nie chcesz ustawiać podstawowego adresu URL, możesz to zrobić inaczej.
Utwórz nowy plik podstawowy w application/core/MY_Config.php
I wklej ten kod
<?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);
}
}
}
Coś więcej na temat base_url
Co się stanie, jeśli nie base_url
?
Nie pojawi się żaden błąd impotencji, aby to ustawić i kontynuować. Możesz kontynuować bez ustawiania, ale powinieneś wiedzieć o wstrzykiwaniu nagłówka HTTP
Gdybym tego nie ustawił, co się pojawi?
Otrzymasz http://[::1]/
zamiast rzeczywistego adresu URL.
Co to znaczy http://[::1]/
??
Jest to tymczasowy adres URL ustawiony domyślnie przez CI. To wskaże katalog główny twojego dokumentu.
::1
- Adres serwera (localhost) Czytaj więcej na ten temat
Jak ustawić właściwą base_url()
??
Podstawowy adres URL powinien zawsze wskazywać na katalog główny folderu projektu. (poza folderem aplikacji)
$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)
Jak korzystać z base_url()
??
Najczęstszym zastosowaniem jest znalezienie właściwej ścieżki do plików js lub css.
<link rel="stylesheet" href="<?php echo base_url('styles/style.css');?>" />
<script src="<?php echo base_url('vendor/jquery/jquery.min.js');?>"></script>
Dodanie powyższego kodu w widoku spowoduje wygenerowanie kodu HTML, jak poniżej:
<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>
Spinki do mankietów
Inteligentny sposób na skonfigurowanie base_url
Następujące wiersze kodu są bardziej sprytnym sposobem skonfigurowania base_url
w 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']);
Zalecane jest
$config['base_url'] = 'https://stackoverflow.com/';
Ponieważ wszyscy znają przestrzeń hostingową. Więc jeśli ustawisz w ten sposób, możesz zapobiec wstrzyknięciu do twojej witryny / hosta .