重写.htaccess以在codeigniter

时间:2016-11-24 01:29:48

标签: php apache .htaccess codeigniter mod-rewrite

我的网站上有.htaccess codeigniter的问题(www.jp.com =>第一个项目) 我刚刚建立了一个新项目,我通过别名链接进行设置和访问。 (www.jp.com/pt =>第二个项目)。

路径如下所示: 第一个项目:/ var / www / jp 第二个项目:/ var / www / pt

问题,如果我访问此网址:“www.jp.com/pt”它的工作原理, 但是..如果我访问其他控制器,例如:“www.jp.com/pt/news”,我没有将控制器设置为默认控制器,显示404页面未找到。

然后,我尝试使用这样的index.php,“www.jp.com/pt/index.php/news”这是有效的..

任何人都可以帮我解决这个问题吗?我可以在没有index.php的情况下访问我的别名链接

我使用CI 2& PHP 5.3

这是我的代码(混合了很多参考文献:D)

当前.htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|public)
RewriteRule ^/(.*)$ http://www.jp.com/$1 [NC,L,R=301]

我的Config.php:

$root = "http://".$_SERVER['HTTP_HOST'];
$root.= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
$config['base_url'] = "$root";
$config['index_page'] = '';

谢谢...

1 个答案:

答案 0 :(得分:2)

codeigniter第二个项目目录中的.htaccess RewriteBase应该说/ pt /

RewriteBase /pt

否则重写到index.php最终会转到第一个项目路由器。