好的,所以我有点理解htaccess使用正则表达式和一系列条件和规则,但是在编写适合我正在寻找的东西时遇到麻烦。
我在同一个父文件夹中有两个域,并希望能够在 sub-domain.com 上使用 domain.com 中的一些模型和视图,并在两者上使用codeinighter。最近我一直在子域的目录中创建一个视图,然后使用"require_once"标签导入模型和视图"。但是,随着项目的进行,我发现必须单独创建每个文件非常烦人。
有没有办法让我使用 htaccess 来使子域上的编码知道在子域中找不到/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]
- 父级(不是实际的目录名称,不确定这是否重要)
- domain.com
- 应用
- 模型
- 视图
- 应用
- api.domain.com
- 应用
- 模型
- 视图
- 应用
- domain.com
这个.htaccess对我来说太复杂了,无法理解,关于这个主题的任何帮助都是有帮助的。我什至不确定htaccess是否可以告诉php这样做,或者是否有可能。也许这就是问题所在? 谢谢!
使用 htaccess,您的选择非常有限。 是的,您可以定义一些路由,是的,您可以尝试在HTaccess中定义稍后可以使用PHP访问的变量,但这不允许您以所需的方式访问models
或views
,例如在2个路径中查找一个文件。
为此,您必须修改 Codeigniter 加载models
和views
的方式。 如果你在system/core/Loader.php
中看一下引擎盖下,你会在顶部看到一堆变量。 其中一些包含在指示路径的index.php
中定义的常量:
protected $_ci_model_paths = array(APPPATH);
您要么必须"破解"此文件,要么扩展它并修改相应的变量以包含array('path1', 'path2')
以便 CI 知道在哪里查找。
关于路由,我不确定您打算如何处理它,但它可能会变得混乱。
也许您不想使用 HMVC,但它们修改加载路径的方式对您很有用。