wake-up-neo.com

Wie lege ich die richtige Codeigniter-Basis-URL fest?

als ich meine Website in der Entwicklungsumgebung hatte, gab es folgende URL: testurl.com

Auf dem Produktionsserver muss jetzt die Adresse meiner Codeigniter-App lauten: someurl.com/mysite/

Ich zog es dorthin und jedes Mal versuche ich, eine Funktion auszuführen, beispielsweise/home/test - es bringt mich zu someurl.com/home/test - was falsch ist.

Es muss sein someurl.com/mysite/home/test - Wie kann ich das beheben? Ich habe eingestellt 

$config['base_url'] = someurl.com/mysite/
30
pawel

Die Basis-URL sollte einschließlich des Protokolls absolut sein:

$config['base_url'] = "http://somesite.com/somedir/";

Wenn Sie den URL-Helfer verwenden, gibt base_url() die obige Zeichenfolge aus.

Die Übergabe von Argumenten an base_url() oder site_url() führt zu folgendem (angenommenem $config['index_page'] = "index.php";): 

echo base_url('assets/stylesheet.css'); // http://somesite.com/somedir/assets/stylesheet.css
echo site_url('mycontroller/mymethod'); // http://somesite.com/somedir/index.php/mycontroller/mymethod
55
Brendan

Prüfen 

config> config

codeigniter-Dateistruktur

ersetzen 

$config['base_url'] = "your Website url";

mit

$config['base_url']  =  "http://".$_SERVER['HTTP_Host'];

$config['base_url'] .= preg_replace('@/[email protected]', '', dirname($_SERVER['SCRIPT_NAME'])).'/';
19
Amranur Rahman

Das ist sehr interessant. Hier ist ein schneller und funktionierender Code:

index.php

/**
 * Define APP_URL Dynamically
 * Write this at the bottom of index.php
 *
 * Automatic base url
 */
define('APP_URL', ($_SERVER['SERVER_PORT'] == 443 ? 'https' : 'http') . "://{$_SERVER['SERVER_NAME']}".str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME'])); 

config.php

/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
|   http://example.com/
|
| If this is not set then CodeIgniter will guess the protocol, domain and
| path to your installation.
|
*/
$config['base_url'] = APP_URL;

CodeIgniter FELSEN !!! :)

7
Neeraj Singh

Wenn Sie das Feld leer lassen, versucht das Framework autodetect seit Version 2.0.0.

Aber nicht in 3.0.0, siehe hier: config.php

4
complex857

dies ist für Server und Live-Site, die ich in hostinger.com beantrage und es funktioniert einwandfrei 

1.: $config['base_url'] = 'http://yoursitename.com'; (in confing.php)

2): src="<?=base_url()?>assest/js/wow.min.js" (in der Ansichtsdatei)

3): href="<?php echo base_url()?>index.php/Mycontroller/Method" (für URL-Link oder Methodenaufruf)

1

Nachdem Sie die Basis-URL in der config.php deklariert haben (beachten Sie, wenn Sie immer noch den gleichen Fehler erhalten, überprüfen Sie autoload.php.)

$config['base_url'] = "http://somesite.com/somedir/";

"Autoload" prüfen

CodeIgniter-Dateistruktur:

\application\config\autoload.php

Und bei Autoload aktivieren:

$autoload['helper'] = array(**'url',** 'file');

Und es funktioniert.

1
Vimel Raja

anwendung> config> config.php

suchen Sie nach $ config ['base_url'] und setzen Sie Ihre Site wie "//example.com" (Protokoll überspringen). 

 $config['base_url'] = "//someurl.com/";

Das funktioniert für mich.

0
Verde

Ich denke, CodeIgniter 3 empfiehlt, $config['base_url'] manuell auf eine vollständige URL zu setzen, um HTTP-Header-Injection zu vermeiden.

Wenn Sie sich nicht darum kümmern, können Sie einfach die folgenden Zeilen in Ihr einfügen

application/config/config.php

defined('BASE_URL') OR define('BASE_URL', (is_https() ? 'https://' : 'http://') . $_SERVER['HTTP_Host'] . dirname($_SERVER['SCRIPT_NAME']) . '/');
$config['base_url'] = BASE_URL;

Auf diese Weise stehen Ihnen BASE_URL konstant in Ihrem gesamten Projektcode (einschließlich der Ansichten) zur Verfügung, und Sie müssen keine Funktionen verwenden:

config_item('base_url') //returns BASE_URL
$this->config->item('base_url'); //returns BASE_URL
0
Marco Demaio

Sie können den standardmäßigen Basis-URL-Pfad für jeden Server verwenden. __, der in config-Ordner> config.php-Dateien verwendet werden soll Ersetzen Sie:

$config['base_url'] = 'index.php';

durch diesen Code: $config['base_url'] = "http://".$_SERVER['HTTP_Host']; $config['base_url'] .= preg_replace('@/[email protected]','',dirname($_SERVER['SCRIPT_NAME'])).'/';

ihr Ordner wird automatisch von jedem Server gefunden

0
Saiful Islam