CodeIgniter路由在子目录中不起作用

时间:2017-12-18 17:38:46

标签: php codeigniter routing

我已经设置了CodeIgniter网站,但只有默认路由似乎正在运行。

我不得不将其设置为整个网站的子目录 - 因此http://localhost/subdir是默认网址 - 这似乎适用于基本的开箱即用路由。

我添加了一个带有以下方法的用户控制器 - 登录,注销,注册,所以我期待http://localhost/subdir/users/login能够正常工作但我得到了:

在此服务器上找不到请求的URL / subdir / users / login。 Apache / 2.4.25(Win32)OpenSSL / 1.0.2k PHP / 5.4.44服务器位于apps.mediaforce.co.uk端口80

我的路由文件非常基本,所以我尝试为用户控制器添加一条新路由,但没有区别。

$route['users/login'] = 'subdir/users/login';
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

我哪里错了?

1 个答案:

答案 0 :(得分:2)

您不需要在路线中加入subdir

因此请更新您的$route['users/login']以路由到以下内容:

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

修改1:

在您的根目录中创建一个.htaccess文件(如果该文件不存在),并在其中保存以下内容以从您的网址中删除index.php

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L]