[英]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.