quand j'avais mon site sur l'environnement de développement - c'était url: testurl.com
Maintenant, sur le serveur de production, l'adresse de mon application codeigniter doit être someurl.com/mysite/
Je l'ai déplacé là-bas, et chaque fois que j'essaie d'exécuter une fonction, par exemple,/home/test - cela me permet d'accéder à someurl.com/home/test - ce qui est FAUX.
Il doit être someurl.com/mysite/home/test - Comment résoudre ce problème? J'ai mis
$config['base_url'] = someurl.com/mysite/
L'URL de base doit être absolue, y compris le protocole:
$config['base_url'] = "http://somesite.com/somedir/";
Si vous utilisez l'URL helper, alors base_url()
affichera la chaîne ci-dessus.
Passer des arguments à base_url()
ou site_url()
donnera le résultat suivant (en supposant que $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
Vérifier
config> config
structure du fichier codeigniter
remplacer
$config['base_url'] = "your Website url";
avec
$config['base_url'] = "http://".$_SERVER['HTTP_Host'];
$config['base_url'] .= preg_replace('@/+$@', '', dirname($_SERVER['SCRIPT_NAME'])).'/';
Eh bien c'est très intéressant, voici un code rapide et fonctionnel:
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;
ROCHES CodeIgniter !!! :)
Si vous le laissez vide, le framework essaiera de détecter automatiquement il depuis la version 2.0.0
.
Mais pas dans 3.0.0
, voir ici: config.php
c'est pour le serveur nd site en direct que je postule dans hostinger.com et son fonctionne bien
1er: $config['base_url'] = 'http://yoursitename.com';
(dans confing.php)
2): src="<?=base_url()?>assest/js/wow.min.js"
(dans le fichier view)
3): href="<?php echo base_url()?>index.php/Mycontroller/Method"
(pour le lien url ou l'appel de méthode)
Après avoir déclaré l’URL de base dans config.php, (notez que si vous obtenez toujours la même erreur, vérifiez autoload.php)
$config['base_url'] = "http://somesite.com/somedir/";
Vérifier "autoload"
Structure du fichier CodeIgniter:
\application\config\autoload.php
Et activez le chargement automatique:
$autoload['helper'] = array(**'url',** 'file');
Et il fonctionne.
application> config> config.php
recherchez $ config ['base_url'] et mettez votre site comme "//example.com" (protocole ignoré)
$config['base_url'] = "//someurl.com/";
Cela fonctionne pour moi.
Je pense que CodeIgniter 3 recommande de définir manuellement $config['base_url']
sur une URL complète afin d'éviter l'injection d'en-tête HTTP .
Si cela ne vous préoccupe pas, vous pouvez simplement ajouter les lignes suivantes dans votre
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;
De cette manière, vous avez également la constante BASE_URL
constante disponible dans tout votre code de projet (y compris les vues) et vous n'avez pas à utiliser de fonctions:
config_item('base_url') //returns BASE_URL
$this->config->item('base_url'); //returns BASE_URL
Vous pouvez utiliser le chemin d’URL de base par défaut pour n’importe quel serveur À utiliser dans le dossier config> fichiers config.php Vous remplacez:
$config['base_url'] = 'index.php';
par ce code: $config['base_url'] = "http://".$_SERVER['HTTP_Host'];
$config['base_url'] .= preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME'])).'/';
il a automatiquement trouvé votre dossier sous n'importe quel serveur