我一直使用代码点火器作为站点的子目录,并在一台服务器上有多个if实例。每个实例都被视为一个单独的应用程序,但都在同一个域名下。我希望启用一个稍微不同的URL结构,并转向mod_rewrite来帮助我。
该页面可在http:// localhost / test访问,但我想重写该URL以显示为http:// localhost / en-US / test。
问题是我不断获得代码点火器(CI)404。我可以确认mod_rewrite正在到达CI index.php,但CI无法提供正确的页面。这是设置示例:
1)Download a new instance of CI并将其放在站点根目录的子目录中。将CI文件夹命名为“test”。现在应该可以在http:// localhost / test的本地服务器上访问它,您应该看到默认的欢迎视图。
2)在服务器的根网站目录中创建.htaccess文件。请勿将其放在CI“test”目录中。添加以下行。
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版本。我需要帮助找出如何解决这个问题。
答案 0 :(得分:1)
嗯,你的问题让我安装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';
在此之后,您可以打开此网址:http://domain.comen-US/test/
以在/test/
目录中加载CI主页。
答案 1 :(得分:0)
你应该看看routing。在保留的路径之后将此语句放在config / routes.php文件中。
$route['test'] = "en-US/test";
当你有Codeigniter时(大多数时候),你可以忘记htaccess。