2012-07-31 4 views
1

J'ai un nouveau site Web où j'ai installé CodeIgniter (dernier). Maintenant, pour le test j'ai un formulaire dans ma page par défaut www.example.com. J'ai enlevé le index.php de l'url avec l'aide de .htaccess. Maintenant, si je soumets le formulaire, je l'ai redirigé vers www.example.com/controller_name/function_name. L'URL montre parfaite comme je l'ai écritURL ne redirection dans CodeIgniter

<form action="<?php echo base_url(); ?>controller_name/function_name" method="post" > 

De plus je me base_url comme http://www.example.com.

Maintenant, le problème est, après la redirection vers www.example.com/controller_name/function_name il jette une erreur aucune page trouvée. Mais j'ai écrit echo "test"; dans cette fonction.

Quelqu'un pourrait-il me aider à comprendre la question.

+0

Avez-vous défini l'itinéraire dans 'config/routes.php'? – orourkek

+3

Pouvez-vous nous montrer le code pertinent? Également .htaccess vous utilisez – peacemaker

+0

Est-ce qu'il montre une page 404 générée par codeigniter, ou celle du serveur web? – complex857

Répondre

2

Pour ma configuration - qui a également modifié htaccess pour enlever index.php - je dû mettre mon fichier de configuration à

$config['index_page'] = ''; 
$config['base_url'] = ''; 

et je me sers demande URI:

$config['uri_protocol'] = 'REQUEST_URI'; 

Avant de changer ces choses que je recevais aussi une page introuvable. Essayez ceci et voyez si cela fonctionne pour vous.

+0

ne fonctionne pas ... essayé ce que vous avez mentionné – user1411837

+0

la seule autre chose que je peux penser est que vous n'appelez pas le contrôleur correctement. quel est le nom du contrôleur? utilisez-vous la bonne orthographe/cas? Il serait utile si vous avez posté le code réel au lieu de "controller_name/function_name" – jco

0

le problème est de savoir comment vous avez été supprimez le index.php

Je sûr que si vous essayez de poster à <?php echo base_url(); ? >index.php/controller_name/function_name, cela fonctionnera.

vous devez vous rédit .htaccess

+0

j'ai essayé cela aussi ... il ne fonctionne toujours pas – user1411837

0

Voici comment ma configuration ressemble à:

config.php

$config['index_page'] = ''; 
$config['base_url'] = ''; 
$config['uri_protocol'] = 'REQUEST_URI'; 

.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?$1/ [L,QSA] 
+0

C'est correct, mais je pense que l'ensemble correct ** base_url ** est meilleur si vous vouloir utiliser CodeIgniter URL Helper; Il peut être défini comme 'http: //www.your-site.com/' ou 'http: // localhost /' pour le serveur Web local. ** uri_protocol ** dans la plupart des cas fonctionne bien comme «AUTO», il doit être modifié uniquement pour la configuration de certains php hébergement web. – deste

+0

Je préfère l'autodétection car elle simplifie le déploiement à partir de scm, ou d'autres moyens automatiques. Je suppose que tout le monde n'a pas besoin de ça. L'assistant url et les autres bibliothèques utilisent la valeur autodétectée sans problème dans mon expérience, comme 'site_url()' fonctionne comme prévu. – complex857

+0

@ complex857 - il ne fonctionne toujours pas, Lance une page du serveur introuvable erreur. – user1411837

0

Mettre en place un nouvelle installation CodeIgniter peut être un problème pour qui le fait pour la première fois, mais je peux vous assurer que c'est plus facile que vous ne pouvez le penser.

Peut-être un tutoriel que je l'ai fait pour WORKink CodeIgniter le fournisseur de eleven2 peut vous aider: www.eleven2.com/forum/topic/247-codeigniter-framework/

S'il vous plaît vérifier si vous configurez correctement CodeIgniter comme décrit tutoriel; si tout va bien, nous devons trouver un problème dans la configuration php ou autre chose.

0

Essayez cette

<form action="<?php echo base_url(); ?>/controller_name/function_name" method="post" > 

ou simplement u peut utiliser:

<form action="<?php echo base_url(controller_name/function_name); ?>" method="post" > 

sacrément sûr qu'il fonctionne