在我的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没有任何关系。
答案 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>