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

pat*_*shi 3 php .htaccess routing rewrite codeigniter

在我的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>
Run Code Online (Sandbox Code Playgroud)

这里的主要htaccess文件是CI的两个级别,因此阅读:

RewriteEngine on
RewriteCond %{SERVER_PORT} 80
rewriterule ^(.*)$ https://www.MainDomain.org/$1 [r=301,nc]
Run Code Online (Sandbox Code Playgroud)

我担心这两套重写规则相互冲突,我真的不知道该怎么做.我可以改变htaccess文件,并且真的希望让他们在和平与和谐中一起工作.然而,它也有可能与htaccess没有任何关系.

sto*_*ain 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>
Run Code Online (Sandbox Code Playgroud)