好,所以我有点理解htaccess使用正则表达式以及一系列条件和规则,但是在编写适用于我所寻找内容的内容时遇到了麻烦。
我在同一父文件夹中有两个域,并且希望能够使用来自domain.com的sub-domain.com上的某些模型和视图,并在两者上都使用codeinighter。最近,我一直在子域的目录中创建视图,然后使用“ require_once”标记导入模型和视图。”但是,随着项目的进行,我发现不得不单独创建每个文件非常烦人
有没有一种方法可以使用htaccess做到这一点,以便子域上的codeignighter知道在/domain.com/application/models/和/domain.com/application/views/中查找(如果找不到)子域,同时还保留/index.php/test-> / test映射。
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
这个.htaccess太复杂了,以至于我无法理解,有关此主题的任何帮助都是有帮助的。我什至不确定htaccess是否可以告诉php做到这一点,或者甚至有可能。也许那是问题所在?谢谢!
答案 0 :(得分:0)
使用htaccess,您的选择非常有限。是的,您可以定义一些路由,是的,您可以尝试在htaccess中定义变量,以后可以使用php进行访问,但这不允许您以所需的方式访问models
或views
例如在2个路径中查找一个文件。
要这样做,您将不得不修改代码点火器加载models
和views
的方式。如果您在system/core/Loader.php
中进行深入了解,则会在顶部看到一堆变量。其中一些包含在index.php
中定义的常量,这些常量指示路径:
protected $_ci_model_paths = array(APPPATH);
您要么必须“入侵”此文件,要么extend it并修改相应的变量以包含array('path1', 'path2')
,以便CI知道在哪里查找。
关于路由,我不确定您打算如何处理,但是可能会变得混乱。
您可能想查看hmvc approach。也许您不想使用hmvc,但是它们修改加载路径的方式对您很有用。