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

时间:2012-11-12 22:57:41

标签: php .htaccess codeigniter routing rewrite

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

  

未指定输入文件。

在谷歌上搜索,似乎原因必须与我的.htaccess情况有关。设置的方式,也许最终可能会改变,是我的CI站点位于主域的子目录中。 CI站点和主域都有自己的.htaccess文件。 CI htacess文件位于applications文件夹中:

<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没有任何关系。

1 个答案:

答案 0 :(得分:11)

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>