我无法将可变网址段重新路由到我设置的测试控制器。我希望案例4重定向到我的测试控制器。
案例1(正常)转到网址 http://localhost/2fb/index.php/redirect/test
//输出“testing”
案例2(不起作用)转到URL http:// localhost / 2fb / redirect / test
// output“未找到请求的URL / 2fb / redirect / test 服务器“。
案例3(正常)转到网址http:// localhost / 2fb /
//输出 - >加载我的欢迎控制器。
案例4(不起作用)转到URL http:// localhost / 2fb / abc
// output“未找到请求的URL / 2fb / redirect / test / abc 服务器“。
我的routes.php文件如下所示:
$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route["2fb/(:any)"] = "redirect/test";
redirect.php控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Redirect extends CI_Controller {
public function index()
{
}
public function test()
{
echo "testing";
}
}
config.php:
$config['index_page'] = '';
.htaccess:
# Code Igniter Htaccess Rules
<IfModule mod_rewrite.c>
RewriteEngine on
# Rewrite URLs of the form 'x' to the form 'index.php/x'.
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
我相信我的Apache配置是正确的,因为它考虑了.htaccess文件的存在。
答案 0 :(得分:0)
也许尝试另一个htaccess:
RewriteRule ^$ /index.php [L]
RewriteCond $1 !^(index\.php|css|img|images|js|scripts|system|uploads|robots\.txt|favicon\.ico|favicon\.png)
RewriteRule ^(.*)$ /index.php/$1 [L]
你还需要:
$route["2fb/(:any)"] = "redirect/test";
你可以这样说:
$route["2fb/(:any)"] = "redirect";
或
$route["2fb/(:any)"] = "redirect/$1";
答案 1 :(得分:0)
固定。
.htaccess文件位于CI应用程序文件夹之外。
.htaccess文件中包含deny from all
。