我尝试使用CodeIgniter框架(托管GoDaddy - Linux)删除index.php
,该框架当前已安装到:example.com/ci
我已将base_url
中的application/config/config.php
声明为http://example.com/ci/
。
以下是.htaccess
的最新测试输入:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>
请注意,域CI安装在而不是我的托管根目录下。 CI文件夹的实际路径为:root/mydomain/ci
今天花了大部分时间尝试过多的解决方案&#34;我开始怀疑这是否可能与GoDaddy有关,或者我的情况可能是某种方式唯一的。
非常感谢任何建议!
编辑:我最接近解决此问题的方法是使用以下.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /clone/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^index.php/(.*)$ [L]
</IfModule>
..同时将我的base_url设置为mydomain.com/clone/(当然使用http://)并从index_page中删除index.php。导航到mydomain.com/clone可以正常工作,但导航到属于软件一部分的两个页面会导致404页面。
答案 0 :(得分:0)
您的评论的答案,您需要添加重写条件来访问sites /目录。 CodeIgniter正在寻找控制器文件夹中的网站。
RewriteCond $1 !^(index\.php|sites)
您还可以添加资源文件夹的名称,例如图像/视频等。
答案 1 :(得分:0)
更改此
在config.php
$config['base_url'] = '';
$config['index_page'] = '';
然后在.htaccess
RewriteEngine on
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
或者您也可以使用.htaccess
编辑01
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]