codeigniter中的URL重写在登录后重写下一页的URL

时间:2012-10-24 04:20:37

标签: php .htaccess codeigniter

我在这方面遇到了困难。好吧,我使用codeigniter创建了一个登录页面,其中整个路径http://localhost/CodeIgniter_2.1.3/index.php将使用.htaccess重写为http://localhost/login。好吧它工作得很好,但问题是我成功登录后,页面使用重定向('next_page')重定向到下一页;因为网址为http://localhost/CodeIgniter_2.1.3/index.php/next_page而不是http://localhost/next_page。我还为该部分创建了一个重写器:

RewriteRule ^events$ /CodeIgniter_2.1.3/index.php/events [L,NC]

每当我键入地址栏中的http://localhost/next_page时,页面就会显得很好(因为我没有在登录和此页面上应用任何规则。)我也尝试使用重定向('http:/ /本地主机/事件);这也很好,但我知道这不是真正的解决方案。哦顺便说一句,我的.htaccess存在于wampserver的www文件夹中。有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

首先,您的域ROOT文件夹应该是codeigniter文件夹

forexample

c:/www/codeigniter_2.1.3/ 

只需将文件从codeigniter_2.1.3移动到根文件夹或将codeigniter文件夹设为ROOT。

然后使用正常的.htaccess重写为:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]

使用Codeigniter ROUTER制作您想要的页面

示例:

$route['login'] = 'welcome/login';

将从Welcome控制器登录功能加载http://localhost/login页面。 您可以在config文件夹中的routes.php上设置$ routes。

P.S>如果你不想在每个页面上看到index.php,请检查你的Config / config.php中的index_page并将其留空。

答案 1 :(得分:1)

您可能只想将虚拟主机添加到localhost。这是一个step by step explanation on how to do that

现在您要做的就是在.htaccess文件夹中创建一个CodeIgniter_2.1.3文件,该文件只删除网址中的index.php