子目录中的 CodeIgniter 站点,htaccess 文件可能会干扰主目录中的 htaccess 文件?

Posted

技术标签:

【中文标题】子目录中的 CodeIgniter 站点,htaccess 文件可能会干扰主目录中的 htaccess 文件?【英文标题】:CodeIgniter site in subdirectory, htaccess file maybe interfering with htaccess file in main directory? 【发布时间】:2012-11-01 10:11:22 【问题描述】:

在我的 CodeIgniter 站点(托管在 GoDaddy 上)中,导航到任何页面,但索引给了我这个错误:

没有指定输入文件。

四处搜索,似乎原因一定与我的 .htaccess 情况有关。设置的方式,也许这最终会改变,是我的 CI 站点位于主域的子目录中。 CI 站点和主域都有自己的 .htaccess 文件。 CI htacess 文件位于应用程序文件夹中:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ /SubDomain/index.php?$1 [L]
</IfModule>

这里的主 htaccess 文件比 CI 高两级,因此读取:

RewriteEngine on
RewriteCond %SERVER_PORT 80
rewriterule ^(.*)$ https://www.MainDomain.org/$1 [r=301,nc]

恐怕这两组重写规则相互冲突,我真的不知道该怎么办。我可以更改任何一个 htaccess 文件,并且真的很想让他们和平与和谐地一起工作。然而,这也可能与 htaccess 无关。

【问题讨论】:

第二组重写规则只是在不安全的连接上启用 SSL 安全性。它不应该以任何方式影响 CodeIgniter 规则。 我想这意味着我用 htaccess 文件找出了错误的树。 很抱歉,我不记得我是如何解决这个问题的,但我确实记得在尝试将 CI 安装到子文件夹时遇到了同样的问题(前段时间)。我认为对 .htaccess 文件和 index.php 文件的更改组合为我解决了这个问题。也许您可以在 Google 上找到指南,或者其他人可能有更具体的建议? 你是否更新了config/config.php中的base_url配置参数($config['base_url'])?如果您使用 site_url 或任何东西来生成适当的链接,它将链接到错误的位置。 您是否在虚拟主机中将主站点和子域设置为单独的站点? 【参考方案1】:

CI .htaccess 不应位于应用程序文件夹中;它应该位于SubDomain 文件夹的根目录中。例如/public_html/SubDomain/.htaccess

另外,在那个.htaccess,你需要设置RewriteBase

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /SubDomain
    RewriteCond %REQUEST_FILENAME !-f
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule ^(.*)$ index.php?$1 [L]
</IfModule>

【讨论】:

谢谢。这似乎已经成功了,结合这里的这些东西:github.com/EllisLab/CodeIgniter/wiki/Godaddy-Installaton-Tips 谢谢,你保护了我的半天... :-) 我有这样的网址:dashboard.site.com/app/dashboard/test 但它不起作用 dashboard.site.com/app/index.php/dashboard/test -> 这是有效的,你能帮忙吗?

以上是关于子目录中的 CodeIgniter 站点,htaccess 文件可能会干扰主目录中的 htaccess 文件?的主要内容,如果未能解决你的问题,请参考以下文章

删除 index.php 并处理两个 Codeigniter 站点的子域,当一个在另一个站点中时

如何在 localhost 上设置 CodeIgniter 站点?

CodeIgniter路由在子目录中不起作用

从 codeigniter 中的视图调用模型是不是不好?

Codeigniter 站点范围的视图

Codeigniter 中的 Cron 作业