Mod rewerite codeigniter

  • Автор Автор smoke
  • Начална дата Начална дата

smoke

Registered
Здравейте,
искам да попитам защо като използвам този код за htaccess http://codeigniter.com/wiki/mod_rewrite/ защо мога да досъпвам само indexa на контролер тоест ако контролера е така:

PHP:
<?php

class Controler_name extends CI_Controller {
  public function index()
  {
    echo 'index';
  }

  public function login()
  {
    echo 'login';
   }
}

?>

защо немога да го достъпя чрез това урл http://url.com/controler/login/ пуска index-а
 
тук нямаш никъде контролер, имаш клас, който е с име контролер, което няма нищо общо с контролера в php ООП

<?php

class Controler_name extends CI_Controller {
public function index()
{
echo 'index';
}

public function login()
{
echo 'login';
}
}

$res = new Controler_name;

echo $res->index();

echo $res->login();
?>

ако е написано така ще ти върне echo от методите в класа
 
от къде да знам какво искаш да кажеш и какво се мъчиш да направиш
 
ами заглавието подсказва "Mod rewerite codeigniter" все пак моляте кажи как да го оправя?
 
как да ти кажа как да го оправиш не съм гадател, нито знам как ти се казва файла, нито разбрах какво се мъчиш да направиш, обясни
 
Значи така имената нямат значение просто сложи някакви аз ще ги заменя проблемът ми е, че имам един контролер с няколко функции но след като сложих .htaccess файла към който съм дал урл не може да се достъпва нито една функция навътре освен index-а на контролера тоест както съм посочил немога да достъпя login по този начин controler/login/ ?
 
smoke каза:
Здравейте,
искам да попитам защо като използвам този код за htaccess http://codeigniter.com/wiki/mod_rewrite/ защо мога да досъпвам само indexa на контролер тоест ако контролера е така:

PHP:
<?php

class Controler_name extends CI_Controller {

private $vars;

	public function __construct()
	{
                       $this->vars = array_merge($_GET,$_POST);


			if (isset($this->vars['do']))
			{
				$doit = trim($this->vars['do']);
				
				switch($doit)
				{
					
					case 'index':
							$this->index();
						break;
					case 'login':
							$this->login();
						break;
					default:
							$this->index();
						break;		
				}
			}
			else 
			{
				$this->index();
			}
		return true;	
	}



  public function index()
  {
    echo 'index';
  }

  public function login()
  {
    echo 'login';
   }
}

?>

в htaccess пишеш това

Код:
RewriteRule ^controler/login/?$ index.php?do=login [L]


защо немога да го достъпя чрез това урл http://url.com/controler/login/ пуска index-а
:oops:
 
всъщност това може да не ти свърши работа, тъй като не съм запознат с това codeigniter и не ми е все още много ясно кво точно прави, ето тук има урок за това

http://web-tourist.net/login/login/view.php?st=3132
 
1 .index_page, изтрий всичко, намира се в config.php
2. htaccess. трябва да е при папките applications,system.
3. Нагласил ли си default_controller в routes ?
 
проблема е, че след като сложа този .htaccess файл:

Код:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    
    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ new_admin_system/index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

защо сега ако имам контролер да кажем home и в него има две функции INDEX и LOGIN когато напиша в урл-то home/login/ се зарежда index функцията, а не login функцията как мога да го направя да се достъпват всички функции на всички контролери?
 

Back
Горе