Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter前控制器位置和正确通道_Php_.htaccess_Codeigniter_Mod Rewrite_Bonfire - Fatal编程技术网

Php Codeigniter前控制器位置和正确通道

Php Codeigniter前控制器位置和正确通道,php,.htaccess,codeigniter,mod-rewrite,bonfire,Php,.htaccess,Codeigniter,Mod Rewrite,Bonfire,如果我移动前端控制器,我的.htaccess代码应该是什么样子?更具体地说,我的front controller位于以下目录中:root/public/index.php,我的.htaccess看起来是这样的: RewriteEngine on RewriteBase / ReWriteCond %{REQUEST_URI} !public/ ReWriteRule ^(.*)$ public/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f Rewri

如果我移动前端控制器,我的.htaccess代码应该是什么样子?更具体地说,我的front controller位于以下目录中:
root/public/index.php
,我的.htaccess看起来是这样的:

RewriteEngine on
RewriteBase /

ReWriteCond %{REQUEST_URI} !public/
ReWriteRule ^(.*)$ public/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php?/$0 [PT,L] 

现在,当我将前端控制器移动到:
root/en/index.php
时,我的.htaccess显然变成了obosolete。我还认为我必须改变我的前控制器的路径?但是,让我们先修复.htaccess以使用新结构。

应该只是重写的问题:

ReWriteCond %{REQUEST_URI} !public/
ReWriteRule ^(.*)$ public/$1 [L]
致:


我现在得到404找不到主题布局:indexIs您的布局仍在公用文件夹下还是在en下?主题和资产仍在公用文件夹下是的,这就是它找不到它们的原因。我想象你的代码(和codeigniter)假设它们在同一个目录下。这将转发请求,就像它首先命中en目录一样。如果我将它们移动到
根目录/en
中,它们将与应用程序目录位于同一文件夹中,这样安全吗?我真的只想让我的
root/en
成为我的应用程序的新根文件夹
ReWriteCond %{REQUEST_URI} !en/
ReWriteRule ^(.*)$ en/$1 [L]