0

我有一个定义了路由的 CodeIgniter/Bonfire 应用程序。
主 URL 工作正常,但子页面未重定向。
当我输入网址时:

http://xtrack.local/news/1393/litany-look

我收到错误 PAGE NOT FOUND,看起来找不到 base_url:

Not Found
The requested URL /news/1393/litany-look was not found on this server.

这是我在 application/config/routes.php 中的路由文件:

$route['news/(:any)']                   = 'home/news/$1';

我的配置文件定义了我的 base_url :

switch (ENVIRONMENT)
    {
        case 'development':
            $config['base_url'] = 'http://xtrack.local';
            break;

        default:
            exit('The application environment is not set correctly.');
    }

EDIT1:我找到了一种通过 index.php 页面访问我的新闻页面的方法:

http://xtrack.local/index.php/news/1393/litany-look
4

1 回答 1

1

index.php 文件是必要的,因为这是准备好所有组件(包括路由器)的应用程序的入口点。不过,您可以在 apache 主机上使用 .htaccess 文件将请求隐式传递给该文件。从手册:


默认情况下,index.php 文件将包含在您的 URL 中:

example.com/index.php/news/article/my_article

您可以使用带有一些简单规则的 .htaccess 文件轻松删除此文件。以下是此类文件的示例,使用“否定”方法重定向除指定项目之外的所有内容:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

在上面的示例中,除 index.php、images 和 robots.txt 之外的任何 HTTP 请求都被视为对 index.php 文件的请求。


因此,该 URL 将变为 example.com/news/article/my_article,或者在您的情况下是您帖子开头的那个。

于 2014-10-03T00:12:31.113 回答