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

时间:2019-07-19 03:40:09

标签: php .htaccess codeigniter codeigniter-htaccess

好,所以我有点理解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] 
  • 父级(不是实际目录名,不确定是否重要)
    • domain.com
      • 应用
        • 模型
        • 观看次数
    • api.domain.com
      • 应用
        • 模型
        • 观看次数

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

1 个答案:

答案 0 :(得分:0)

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

要这样做,您将不得不修改代码点火器加载modelsviews的方式。如果您在system/core/Loader.php中进行深入了解,则会在顶部看到一堆变量。其中一些包含在index.php中定义的常量,这些常量指示路径:

protected $_ci_model_paths = array(APPPATH);

您要么必须“入侵”此文件,要么extend it并修改相应的变量以包含array('path1', 'path2'),以便CI知道在哪里查找。

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

您可能想查看hmvc approach。也许您不想使用hmvc,但是它们修改加载路径的方式对您很有用。