我们刚刚将Codeigniter网站(从我们的根域)复制到同一根域上的子目录(所有config.php更改和新数据库等)。但是,页面链接不显示单个页面,浏览器只是重新加载index.php页面内容(就好像它正在加载新页面)并将浏览器窗口中的URL更改为正确的页面。
这真的很奇怪,而且我花了好几个小时才倾倒它,所以我希望这里有人可以给我一个起点搜索点。
有关您的信息,子目录中的.htaccess是:
RewriteEngine on
RewriteRule ^test.php$ mod_rewrite.php
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
答案 0 :(得分:0)
如果新的codeigniter安装在现在曾经位于根目录的子目录中,则需要在htaccess的index.php部分前面包含子目录的名称
这样的事情(改变在最后一行):
RewriteEngine on
RewriteRule ^$ /dev/index.php [L]
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico|zip\.php|resources)
RewriteRule ^(.*)$ /dev/index.php?/$1 [L]
dev应该更改为子目录的名称。另外,如果这两个都没有,并且你的root上有一个htaccess,它可能会影响这个子目录。
答案 1 :(得分:0)
现在经过许多不同的尝试后对它进行排序!
root中的文件config.php
- >申请 - >配置(第46行)原来是:
$config['uri_protocol'] = ($_SERVER['SERVER_ADDR'] == '127.0.0.1') ? 'AUTO' : 'ORIG_PATH_INFO';
应该是:
$config['uri_protocol'] = ($_SERVER['SERVER_ADDR'] == '127.0.0.1') ? 'AUTO' : 'PATH_INFO';
所有现在都正常运作。