使用 htaccess 将模型和视图Rewrite_Mod到子域



好的,所以我有点理解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
      • 应用
        • 模型
        • 视图

这个.htaccess对我来说太复杂了,无法理解,关于这个主题的任何帮助都是有帮助的。我什至不确定htaccess是否可以告诉php这样做,或者是否有可能。也许这就是问题所在? 谢谢!

使用 htaccess,您的选择非常有限。 是的,您可以定义一些路由,是的,您可以尝试在HTaccess中定义稍后可以使用PHP访问的变量,但这不允许您以所需的方式访问modelsviews,例如在2个路径中查找一个文件。

为此,您必须修改 Codeigniter 加载modelsviews的方式。 如果你在system/core/Loader.php中看一下引擎盖下,你会在顶部看到一堆变量。 其中一些包含在指示路径的index.php中定义的常量:

protected $_ci_model_paths = array(APPPATH);

您要么必须"破解"此文件,要么扩展它并修改相应的变量以包含array('path1', 'path2')以便 CI 知道在哪里查找。

关于路由,我不确定您打算如何处理它,但它可能会变得混乱。

也许您不想使用 HMVC,但它们修改加载路径的方式对您很有用。

最新更新