繁体   English   中英

mod_rewrite并路由到代码点火器

[英]mod_rewrite and routing to code igniter

我一直在使用代码点火器作为站点的子目录,并且在一台服务器上有if的多个实例。 每个实例都被认为是一个单独的应用程序,但是所有实例都使用相同的域名。 我希望启用略有不同的URL结构,并已转向mod_rewrite来帮助我。

该页面可通过http:// localhost / test访问,但是我想重写该URL以显示为http:// localhost / en-US / test。

问题是我不断收到代码点火器(CI)404。我可以确认mod_rewrite已到达CI index.php,但是CI无法传递正确的页面。 这是示例设置:

1) 下载一个新的CI实例,并将其放在站点根目录的子目录中。 将CI文件夹命名为“ test”。 现在应该可以在本地服务器上的http:// localhost / test上访问它,并且应该看到默认的欢迎视图。

2)在服务器的根Web目录中创建一个.htaccess文件。 不要将其放在CI“测试”目录中。 向其添加以下行。

RewriteEngine On
RewriteBase /
RewriteRule ^en-US/test/?$ test/index.php [NC,L]

根据我对mod_rewrite的理解,这应该允许URL http:// localhost / en-US / test呈现位于http:// localhost / test的内容。 虽然没有。 我只是得到404的CI版本。我需要帮助弄清楚如何解决此问题。

嗯,您的问题让我安装CodeIgnoter并阅读其路由:)

无论如何,您的DocumentRoot/.htaccess如下所示:

RewriteEngine On
RewriteBase /
RewriteRule ^en-US/(test)/(.*)$ $1/$2 [NC,L]

然后将此行替换为/ test / application / config / config.php`:

$config['uri_protocol'] = 'PATH_INFO';

默认情况下,它设置为:

$config['uri_protocol'] = 'AUTO';

之后,您可以打开以下URL: http://domain.comen-US/test/以在/test/目录中加载CI主页。

您应该检查路由 保留路由之后,将此语句放在config / routes.php文件中。

$route['test'] = "en-US/test";

当您拥有Codeigniter时(大多数时候),您可能会忘记htaccess。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM